jquery ajax學習筆記

這兩天作項目的時候頻繁用到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 設置請求超時時間(毫秒)。此設置將覆蓋全局設置。

參考文章:jQuery ajax()方法|菜鳥教程
jQuery ajax w3school

相關文章
相關標籤/搜索