這兩天作項目的時候頻繁用到jquery ajax,不少東西都忘了。因而寫下這篇文章,加深印象,也方便本身往後查閱。html
先看一下基本版本:jquery
$.ajax({ url: url, //請求的url地址 dataType: datatype, //服務器返回的值類型 async: true, //請求是否異步,默認爲異步 data: { "id": "value" , "param":"param" },//發送到服務器的參數 type: "GET", //請求方式 beforeSend: function() { //請求前的處理 }, success: function(data) { //請求成功時處理 }, complete: function() { //請求完成的處理 }, error: function() { //請求出錯處理 } });
接下來來詳細看一下各個屬性ajax
url 請求的url地址,String類型json
dataType 服務器返回的值的類型。【若沒有填寫,jQuery會自動根據HTTP包MIME信息來智能判斷。若填寫錯了反而會有問題】有如下幾種類型:瀏覽器
"xml": 返回XML文檔,可用 jQuery 處理。緩存
"html": 返回純文本HTML信息;包含的 script 標籤會在插入 dom 時執行。服務器
"script": 返回純文本 JavaScript 代碼。不會自動緩存結果。除非設置了 "cache" 參數。注意:在遠程請求時(不在同一個域下),全部 POST 請求都將轉爲GET請求。(由於將使用DOM的script標籤來加載)app
"json": 返回 JSON 數據dom
"jsonp": JSONP 格式。使用 JSONP 形式調用函數時,如 "myurl?callback=?" jQuery 將自動替換 ? 爲正確的函數名,以執行回調函數。異步
"text": 返回純文本字符串
data 發送到服務器的參數。GET請求中將附加在URL後。
type 請求方式GET【默認方式】 | POST
async Boolean類型。默認值: true【表示異步】。
默認設置下,全部請求均爲異步請求。
若是須要發送同步請求,設置爲 false。
【注意,同步請求將鎖住瀏覽器,用戶其它操做必須等待請求完成才能夠執行。】
cache Boolean類型。【默認】true。當dataType爲script和jsonp時默認爲 false。設置爲false將不緩存此頁面。
【默認狀況下,請求總會被髮出去,但瀏覽器有可能從它的緩存中調取數據。要禁止使用緩存的結果,能夠設置 cache 參數爲 false】
contentType 發送信息至服務器時內容編碼類型。默認值: "application/x-www-form-urlencoded"。
contentType:"application/x-www-form-urlencoded; charset=utf-8"
beforeSend 發送請求前可修改 XMLHttpRequest 對象的函數,如添加自定義 HTTP 頭。(沒有實踐過,不是很懂。)
success 請求成功後的回調函數。參數:由服務器返回,並根據 dataType 參數進行處理後的數據;描述狀態的字符串。
dataFilter 在請求成功以後調用。提供 data 和 type 兩個參數:data 是 Ajax 返回的原始數據,type 是調用 jQuery.ajax 時提供的 dataType 參數。而且必須返回新的數據(多是處理過的)傳遞給 success 回調函數。
error 很明顯是請求失敗時調用此函數。有如下三個參數:XMLHttpRequest 對象、錯誤信息、(可選)捕獲的異常對象。若是發生了錯誤,錯誤信息(第二個參數)除了獲得 null 以外,還多是 "timeout", "error", "notmodified" 和 "parsererror"。
complete 請求完成後回調函數 (請求成功或失敗以後均調用)。參數: XMLHttpRequest 對象和一個描述請求類型的字符串。
global 是否觸發全局AJAX事件。默認爲true | 【不觸發則設置爲】false。用於阻止響應註冊的回調函數,好比 .ajaxSend,或者 ajaxError,以及相似的方法。這在有些時候頗有用,好比發送的請求很是頻繁且簡短的時候,就能夠在 ajaxSend 裏禁用這個。
ifModified 僅在服務器數據改變時獲取新數據。默認值: false。使用 HTTP 包 Last-Modified 頭信息判斷。在 jQuery 1.4 中,它也會檢查服務器指定的 'etag' 來肯定數據沒有被修改過。
【若是但願判斷數據自從上次請求後沒有更改過就報告出錯的話,設置ifModified爲true】
jsonp 在一個 jsonp 請求中重寫回調函數的名字。這個值用來替代在 "callback=?" 這種 GET 或 POST 請求中 URL 參數裏的 "callback" 部分,好比 {jsonp:'onJsonPLoad'} 會致使將 "onJsonPLoad=?" 傳給服務器。
jsonpCallback 爲 jsonp 請求指定一個回調函數名。這個值將用來取代 jQuery 自動生成的隨機函數名。這主要用來讓 jQuery 生成度獨特的函數名,這樣管理請求更容易,也能方便地提供回調函數和錯誤處理。
你也能夠在想讓瀏覽器緩存 GET 請求的時候,指定這個回調函數名。
username 用於響應 HTTP 訪問認證請求的用戶名。
password 用於響應 HTTP 訪問認證請求的密碼
若是服務器須要 HTTP 認證,可使用用戶名和密碼能夠經過 username 和 password 選項來設置。
processData 默認值: true。默認狀況下,經過data選項傳遞進來的數據,若是是一個對象(技術上講只要不是字符串),都會處理轉化成一個查詢字符串,以配合默認內容類型 "application/x-www-form-urlencoded"。
【發送 DOM 樹信息或其它不但願轉換的信息設置爲false】。
scriptCharset 只有當請求時 dataType 爲 "jsonp" 或 "script",而且 type 是 "GET" 纔會用於強制修改 charset。
一般只在本地和遠程的內容編碼不一樣時使用。
timeout 設置請求超時時間(毫秒)。此設置將覆蓋全局設置。