>  기사  >  웹 프론트엔드  >  $.ajax() jQuery의 메소드 매개변수 분석

$.ajax() jQuery의 메소드 매개변수 분석

高洛峰
高洛峰원래의
2016-12-09 13:17:171188검색

이 글의 예시에서는 참고용으로 jQuery $.ajax() 메소드 매개변수를 설명합니다. 구체적인 내용은 다음과 같습니다.

$.ajax({
  url:'test.do',
  data:{id:123,name:'xiaoming'},
  type:'post',
  dataType:'json',
  success:function(data){
   alert(data);//弹窗
   //TODO ........
  
  },
  
  error:function(data){
    alert(data);//弹窗
    //TODO ........
  }
 
 })

url : 요구사항은 문자열 유형 매개변수이며, (기본값은 현재 페이지 주소) 요청을 보낼 주소입니다.
type: 매개변수는 문자열 유형이어야 합니다. 요청 메서드(post 또는 get)는 기본적으로 get입니다. put 및 delete와 같은 다른 http 요청 방법도 사용할 수 있지만 일부 브라우저에서만 지원됩니다.

시간 초과: 요청은 Number의 매개변수이며 요청 시간 초과 시간(밀리초)을 설정합니다. 이 설정은 $.ajaxSetup() 메서드의 전역 설정을 재정의합니다.


Async: BOOLEAN 유형의 매개변수가 필수이며 기본 설정은 true이며 모든 요청은 비동기 요청입니다. 동기 요청을 보내야 하는 경우 이 옵션을 false로 설정하세요. 동기 요청은 브라우저를 잠그며 사용자는 다른 작업을 수행하기 전에 요청이 완료될 때까지 기다려야 합니다.

캐시: Boolean 유형이어야 하는 매개변수, 기본값은 True(데이터 유형이 스크립트인 경우 기본값은 false)입니다. false로 설정하면 브라우저 캐시에서 요청 정보를 로드하지 않습니다.

데이터: 데이터를 서버로 전송하기 위해서는 Object 또는 String의 매개변수가 필요합니다. 문자열이 아닌 경우 자동으로 문자열 형식으로 변환됩니다. get 요청이 URL에 추가됩니다. 이러한 자동 변환을 방지하려면 processData 옵션을 확인하십시오. 객체는 키/값 형식이어야 합니다. 예를 들어 {foo1:"bar1",foo2:"bar2"}는 &foo1=bar1&foo2=bar2로 변환됩니다. 배열인 경우 JQuery는 자동으로 동일한 이름을 다른 값에 할당합니다. 예를 들어, {foo:["bar1","bar2"]}는 &foo=bar1&foo=bar2로 변환됩니다. ~ ~ 지정하지 않으면 JQuery는 http 패키지 MIME 정보를 기반으로 responseXML 또는 responseText를 자동으로 반환하고 이를 콜백 함수 매개 변수로 전달합니다.


의 사용 가능한 유형은 다음과 같습니다.

xml: JQuery로 처리할 수 있는 XML 문서를 반환합니다.
html: 일반 텍스트 HTML 정보를 반환합니다. 포함된 스크립트 태그는 DOM에 삽입될 때 실행됩니다.

스크립트: 일반 텍스트 JavaScript 코드를 반환합니다. 결과는 자동으로 캐시되지 않습니다. 캐시 매개변수가 설정되지 않은 경우. 동일한 도메인이 아닌 원격 요청을 수행할 때 모든 게시 요청은 가져오기 요청으로 변환됩니다.

json: JSON 데이터를 반환합니다.

jsonp: JSONP 형식입니다. myurl?callback=?과 같은 SONP 형식을 사용하여 함수를 호출할 때 JQuery는 자동으로 마지막 "?"를 올바른 함수 이름으로 대체하여 콜백 함수를 실행합니다.

text: 일반 텍스트 문자열을 반환합니다.


beforeSend: 매개변수는 함수 유형이어야 합니다. 요청을 보내기 전에 사용자 정의 HTTP 헤더를 추가하는 등 XMLHttpRequest 객체의 기능을 수정할 수 있습니다. beforeSend에서 false가 반환되면 이 ajax 요청을 취소할 수 있습니다. XMLHttpRequest 객체가 유일한 매개변수입니다.
function(XMLHttpRequest){
this; //이 ajax 요청을 호출할 때 전달되는 옵션 매개변수
}

complete: 요구사항은 Function 유형의 매개변수입니다. 요청이 완료되었습니다. 콜백 함수가 호출되었습니다(요청이 성공하거나 실패할 때 호출됨).

매개변수: XMLHttpRequest 객체와 성공적인 요청 유형을 설명하는 문자열.
function(XMLHttpRequest, textStatus){
this; //이 Ajax 요청 호출 시 전달되는 옵션 매개변수
}

success:要求为Function类型的参数,请求成功后调用的回调函数,有两个参数。
         (1)由服务器返回,并根据dataType参数进行处理后的数据。
         (2)描述状态的字符串。
         function(data, textStatus){
            //data可能是xmlDoc、jsonObj、html、text等等
            this;  //调用本次ajax请求时传递的options参数
        error:要求为Function类型的参数,请求失败时被调用的函数。该函数有3个参数,即XMLHttpRequest对象、错 误信息、捕获的错误对象(可选)。

ajax事件函数如下:     

function(XMLHttpRequest, textStatus, errorThrown){
  //通常情况下textStatus和errorThrown只有其中一个包含信息
  this; //调用本次ajax请求时传递的options参数
 }

   

contentType:要求为String类型的参数,当发送信息至服务器时,内容编码类型默认为"application/x-www-form-urlencoded"。该默认值适合大多数应用场合。              
dataFilter:要求为Function类型的参数,给Ajax返回的原始数据进行预处理的函数。
            提供data和type两个参数。data是Ajax返回的原始数据,type是调用jQuery.ajax时提供的dataType参数。函数返回的值将由jQuery进一步处理。          

function(data, type){
   //返回处理后的数据
   return data;
  }

   

global:要求为Boolean类型的参数,默认为true。表示是否触发全局ajax事件。设置为false将不会触发全局ajax事件,ajaxStart或ajaxStop可用于控制各种ajax事件。         

ifModified:要求为Boolean类型的参数,默认为false。仅在服务器数据改变时获取新数据。服务器数据改变判断的依据是Last-Modified头信息。默认值是false,即忽略头信息。             

jsonp:要求为String类型的参数,在一个jsonp请求中重写回调函数的名字。该值用来替代在"callback=?"这种GET或POST请求中URL参数里的"callback"部分,例如 {jsonp:'onJsonPLoad'}会导致将"onJsonPLoad=?"传给服务器。       

username:要求为String类型的参数,用于响应HTTP访问认证请求的用户名。
password:要求为String类型的参数,用于响应HTTP访问认证请求的密码。
processData:要求为Boolean类型的参数,默认为true。默认情况下,发送的数据将被转换为对象(从技术角度来讲并非字符串)以配合默认内容类型"application/x-www-form-urlencoded"。如果要发送DOM树信息或者其他不希望转换的信息,请设置为false。             

scriptCharset:要求为String类型的参数,只有当请求时dataType为"jsonp"或者"script",并且type是GET时才会用于强制修改字符集(charset)。通常在本地和远程的内容编码不同时使用。

案例代码:

$(function(){
 $('#send').click(function(){
   $.ajax({
    type: "GET",
    url: "test.json",
    data: {username:$("#username").val(), content:$("#content").val()},
    dataType: "json",
    success: function(data){
       $('#resText').empty(); //清空resText里面的所有内容
       var html = '';
       $.each(data, function(commentIndex, comment){
        html += '
 
  
  
 
  ' + comment['username']
           + ':

   


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.