首頁 > web前端 > js教程 > 主體

Jquery中$.post和$.ajax的用法小結

PHPz
發布: 2018-10-15 15:23:58
原創
1126 人瀏覽過

Jquery的$.ajax的用法:

jQuery.ajax( options ) : 透過HTTP 請求載入遠端數據,這個是jQuery 的底層AJAX 實作。簡單易用的高層實作請見 $.get, $.post 等。

$.ajax() 傳回其建立的 XMLHttpRequest 物件。大多數情況下你無需直接操作該對象,但特殊情況下可用於手動終止請求。

注意: 如果你指定了 dataType 選項,請確保伺服器返回正確的 MIME 訊息,(如 xml 返回 "text/xml")。錯誤的 MIME 類型可能導致不可預測的錯誤。請參閱 Specifying the Data Type for AJAX Requests 。

當設定 datatype 類型為 'script' 的時候,所有的遠端(不在同一個域中)POST請求都回轉換為GET方式。

$.ajax() 只有一個參數:參數 key/value 對象,包含各配置及回呼函數資訊。詳細參數選項請見下。

jQuery 1.2 中,您可以跨網域載入 JSON 數據,使用時需將資料類型設為 JSONP。使用 JSONP 形式呼叫函數時,如 "myurl?callback=?" jQuery 會自動取代 ? 為正確的函式名,以執行回呼函數。當資料類型設定為 "jsonp" 時,jQuery 會自動呼叫回呼函數。 (這我不是很懂)

jquery ajax 參數列表:

url(String)

url(String)




(預設: 目前頁位址) 發送請求的位址。

type(String)

請求方式 (參數有兩種 "POST" 和 "GET"),預設為 "GET"。注意:其它 HTTP 請求方法,如 PUT 和 DELETE 也可以使用,但僅部分瀏覽器支援。

timeout(Number)
function(XMLHttpRequest){ this; // the options for this ajax request}
cache(Boolean)
登入後複製

設定請求逾時時間(毫秒)。此設定將覆蓋全域設定。

async(Boolean)

(預設: true) 在設定為true的情況下所有請求均為非同步請求。如果需要傳送同步請求,請將此選項設為 false。注意,同步請求將鎖住瀏覽器,使用者其它操作必須等待請求完成才可以執行。
beforeSend(Function)

發送請求前可修改 XMLHttpRequest 物件的函數,例如新增自訂 HTTP 頭。 XMLHttpRequest 物件是唯一的參數。
程式碼如下:
function(XMLHttpRequest,textStatus){
 this;//theoptionsforthisajaxrequest
}
登入後複製

 

 

是否將請求結果設定快取(預設: true) ,設定為false 將不會從瀏覽器快取中載入請求訊息,注意開發初期最好設定為false,否則不方便調試的哦。

complete(Function)

請求完成後回呼函數 (請求成功或失敗時均呼叫)。參數: XMLHttpRequest 對象,成功資訊字串。

程式碼如下:




contentType(String)

application/x-www-form-urlencoded") 發送訊息至伺服器時內容編碼類型。預設值適合大多數應用程式場合。

data(Object,String)


傳送到伺服器的資料。將自動轉換為請求字串格式。 GET 請求中將附加在 URL 後。查看 processData 選項說明以禁止此自動轉換。必須為 Key/Value格式。如果為數組,jQuery 將自動為不同值對應同一個名稱。如 {foo:["bar1", "bar2"]} 轉換為 '&foo=bar1&foo=bar2'。

function(XMLHttpRequest,textStatus,errorThrown){
 //通常情况下textStatus和errorThown只有其中一个有值
 this;//theoptionsforthisajaxrequest
}
登入後複製
dataType(String)<🎜><🎜><🎜><🎜>定義伺服器傳回的資料型別。如果不指定,jQuery 將自動根據 HTTP 包 MIME 資訊傳回 responseXML 或 responseText,並作為回調函數參數傳遞,可用值:<🎜>"xml": 傳回 XML 格式數據,可用 jQuery 處理。 <🎜>"html": 傳回純文字 HTML 格式資料;可包含 script 元素。 <🎜>"script": 傳回純文字 JavaScript 程式碼。不會自動快取結果。 <🎜>"json": 傳回 JSON 資料 。 <🎜>"jsonp": JSONP 格式。使用 JSONP 形式呼叫函數時,如 "myurl?callback=?" jQuery 會自動取代 ? 為正確的函式名,以執行回呼函數。 <🎜><🎜><🎜>error(Function)<🎜><🎜><🎜><🎜>(預設: 自動判斷 (xml 或 html)) 要求失敗時將呼叫此方法。這個方法有三個參數:XMLHttpRequest 對象,錯誤訊息,(可能)捕獲的錯誤對象。 <🎜><🎜>程式碼如下<🎜><🎜><🎜><🎜>

global(Boolean)

是否触发全局 AJAX 事件(默认: true) 。设置为 false 将不会触发全局 AJAX 事件,如 ajaxStart 或 ajaxStop 。可用于控制不同的Ajax事件

ifModified(Boolean)

(默认: false) 仅在服务器数据改变时获取新数据。使用 HTTP 包 Last-Modified 头信息判断。

processData(Boolean)

设置发送数据的信息格式(默认: true),设置为 true 的时候发送的数据将被转换为对象(技术上讲并非字符串) 以配合默认内容类型 "application/x-www-form-urlencoded"。如果要发送 DOM 树信息或其它不希望转换的信息,请设置为 false。

success(Function)

请求成功后回调函数。这个方法有两个参数:服务器返回数据,返回状态

代码如下:

function(data,textStatus){ 
 //datacouldbexmlDoc,jsonObj,html,text,etc... 
 this;//theoptionsforthisajaxrequest 
}
登入後複製

下面以一则示例解释一下该方法的具体的用法:

$.ajax({ 
  type:&#39;get&#39;, 
  url:&#39;http://www.www.daimajiayuan.com/rss&#39;, 
  beforeSend:function(XMLHttpRequest){ 
    //ShowLoading(); 
  }, 
  success:function(data,textStatus){ 
    $(&#39;.ajax.ajaxResult&#39;).html(&#39;&#39;); 
    $(&#39;item&#39;,data).each(function(i,domEle){ 
      $(&#39;.ajax.ajaxResult&#39;).append(&#39;&#39;+$(domEle).children(&#39;title&#39;).text()+&#39;&#39;); 
    }); 
  }, 
  complete:function(XMLHttpRequest,textStatus){ 
    //HideLoading(); 
  }, 
  error:function(){ 
    //请求出错处理 
  } 
});
登入後複製

Jquery的$.post的用法:

3. jQuery.post( url, [data], [callback], [type] ) :使用POST方式来进行异步请求
jquery $.post 方法参数列表(说明):
url (String) : 发送请求的URL地址.
data (Map) : (可选) 要发送给服务器的数据,以 Key/value 的键值对形式表示,可将此值放到url中。
callback (Function) : (可选) 载入成功时回调函数(只有当Response的返回状态是success才能调用该方法)。

type (String) : (可选)客户端请求的数据类型(JSON,XML,等等)

这是一个简单的 POST 请求功能以取代复杂 $.ajax ,请求成功时可调用回调函数。如果需要在出错时执行函数,请使用 $.ajax。
下面是一个使用$.post的简单示例代码:

$.post( 
  &#39;http://www.daimajiayuan.com/ajax.php&#39;, 
  {Action:"post",Name:"lulu"}, 
  function(data,textStatus){ 
    //data可以是xmlDoc,jsonObj,html,text,等等. 
    //this;//这个Ajax请求的选项配置信息,请参考jQuery.get()说到的this 
    alert(data.result); 
  }, 
  "json"//这里设置了请求的返回格式为"json" 
);
登入後複製

如果你设置了请求的格式为"json",此时你没有设置Response回来的ContentType 为:Response.ContentType = "application/json"; 那么你将无法捕捉到返回的数据。

注意,上面的示例中 alert(data.result); 由于设置了Accept报头为"json",这里返回的data就是一个对象,因此不需要用eval()来转换为对象。

以上所述就是本文的全部内容了,希望大家能够喜欢。

【相关教程推荐】

1. JavaScript视频教程
2. JavaScript在线手册
3. bootstrap教程

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!