首頁  >  文章  >  web前端  >  jQuery中$.ajax()方法參數解析

jQuery中$.ajax()方法參數解析

高洛峰
高洛峰原創
2016-12-09 13:17:171190瀏覽

本文實例為大家解釋了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: 要求為String類型的參數,(預設為當前頁地址)發送請求的地址。
type: 要求為String類型的參數,請求方式(post或get)預設為get。注意其他http請求方法,例如put和delete也可以使用,但僅有部分瀏覽器支援。      

timeout: 要求為Number類型的參數,而設定請求逾時時間(毫秒)。此設定將覆蓋$.ajaxSetup()方法的全域設定。         

async:要求為Boolean類型的參數,預設為true,所有請求為非同步請求。 如果需要傳送同步請求,請將此選項設為false。注意,同步請求將鎖住瀏覽器,使用者其他操作必須等 待請求完成才可以執行。      

cache:要求為Boolean類型的參數,預設為true(dataType為script時,預設為false)。設定為false將不會從瀏覽器快取中載入請求資訊。       

data: 要求為Object或String類型的參數,並傳送至伺服器的資料。如果已經不是字串,將自動轉換為字串格式。 get請求中將附加在url後。防止這種自動轉換,可以查看processData選項。物件必須為key/value格式,例如{foo1:"bar1",foo2:"bar2"}轉換為&foo1=bar1&foo2=bar2。如果是數組,JQuery將自動為不同值對應同一個名稱。例如{foo:["bar1","bar2"]}轉換為&foo=bar1&foo=bar2。         

dataType: 要求為String類型的參數,並預期伺服器回傳的資料類型。如果不指定,JQuery將自動根據http套件mime資訊傳回responseXML或responseText,並作為回呼函數參數傳遞。          

可用的類型如下:

          xml:返回XML文檔,並使用JQuery處理。
          html:返回純文字HTML資訊;所包含的script標籤會在插入DOM時執行。
          script:返回純文字JavaScript程式碼。不會自動快取結果。除非設定了cache參數。注意在遠端請求時(不在同一個網域下),所有post請求都會轉為get請求。
          json:回傳JSON資料。
          jsonp:JSONP格式。使用SONP形式呼叫函數時,例如myurl?callback=?,JQuery將自動取代後一個  “?”為正確的函數名,以執行回呼函數。 

text:傳回純文字字串。

beforeSend:要求為Function類型的參數,發送請求前可以修改XMLHttpRequest物件的函數,例如新增自訂HTTP頭。在beforeSend中如果回傳false可以取消本次ajax請求。 XMLHttpRequest物件是惟一的參數。
            function(XMLHttpRequest){
              

complete:要求為Function類型的參數,請求完成後調用的回調函數(請求成功或失敗時均調用)。

          參數:XMLHttpRequest物件與一個說明成功請求類型的字串。
          function(XMLHttpRequest, textStatus){
             this;    //調用本次ajax請求時傳遞的options參數
          }

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