天天看點

jQuery使用ajax跨域擷取資料

jQuery使用ajax跨域擷取資料
jQuery使用ajax跨域擷取資料

<dl></dl>

<dt>options</dt>

<dd></dd>

類型:object

可選。ajax 請求設定。所有選項都是可選的。

<dt>async</dt>

類型:boolean

預設值: true。預設設定下,所有請求均為異步請求。如果需要發送同步請求,請将此選項設定為 false。

注意,同步請求将鎖住浏覽器,使用者其它操作必須等待請求完成才可以執行。

<dt>beforesend(xhr)</dt>

類型:function

發送請求前可修改 xmlhttprequest 對象的函數,如添加自定義 http 頭。

xmlhttprequest 對象是唯一的參數。

這是一個 ajax 事件。如果傳回 false 可以取消本次 ajax 請求。

<dt>cache</dt>

預設值: true,datatype 為 script 和 jsonp 時預設為 false。設定為 false 将不緩存此頁面。

jquery 1.2 新功能。

<dt>complete(xhr, ts)</dt>

請求完成後回調函數 (請求成功或失敗之後均調用)。

參數: xmlhttprequest 對象和一個描述請求類型的字元串。

這是一個 ajax 事件。

<dt>contenttype</dt>

類型:string

預設值: "application/x-www-form-urlencoded"。發送資訊至伺服器時内容編碼類型。

預設值适合大多數情況。如果你明确地傳遞了一個 content-type 給 $.ajax() 那麼它必定會發送給伺服器(即使沒有資料要發送)。

<dt>context</dt>

這個對象用于設定 ajax 相關回調函數的上下文。也就是說,讓回調函數内 this 指向這個對象(如果不設定這個參數,那麼 this 就指向調用本次 ajax 請求時傳遞的 options 參數)。比如指定一個 dom 元素作為 context 參數,這樣就設定了 success 回調函數的上下文為這個 dom 元素。

就像這樣:

<dt>data</dt>

發送到伺服器的資料。将自動轉換為請求字元串格式。get 請求中将附加在 url 後。檢視 processdata 選項說明以禁止此自動轉換。必須為 key/value 格式。如果為數組,jquery 将自動為不同值對應同一個名稱。如 {foo:["bar1", "bar2"]} 轉換為 '&amp;foo=bar1&amp;foo=bar2'。

<dt>datafilter</dt>

給 ajax 傳回的原始資料的進行預處理的函數。提供 data 和 type 兩個參數:data 是 ajax 傳回的原始資料,type 是調用 jquery.ajax 時提供的 datatype 參數。函數傳回的值将由 jquery 進一步處理。

<dt>datatype</dt>

預期伺服器傳回的資料類型。如果不指定,jquery 将自動根據 http 包 mime 資訊來智能判斷,比如 xml mime 類型就被識别為 xml。在 1.4 中,json 就會生成一個 javascript 對象,而 script 則會執行這個腳本。随後伺服器端傳回的資料會根據這個值解析後,傳遞給回調函數。可用值:

"xml": 傳回 xml 文檔,可用 jquery 處理。

"html": 傳回純文字 html 資訊;包含的 script 标簽會在插入 dom 時執行。

"script": 傳回純文字 javascript 代碼。不會自動緩存結果。除非設定了 "cache" 參數。注意:在遠端請求時(不在同一個域下),所有 post 請求都将轉為 get 請求。(因為将使用 dom 的 script标簽來加載)

"json": 傳回 json 資料 。

"jsonp": jsonp 格式。使用 jsonp 形式調用函數時,如 "myurl?callback=?" jquery 将自動替換 ? 為正确的函數名,以執行回調函數。

"text": 傳回純文字字元串

<dt>error</dt>

預設值: 自動判斷 (xml 或 html)。請求失敗時調用此函數。

有以下三個參數:xmlhttprequest 對象、錯誤資訊、(可選)捕獲的異常對象。

如果發生了錯誤,錯誤資訊(第二個參數)除了得到 null 之外,還可能是 "timeout", "error", "notmodified" 和 "parsererror"。

<dt>global</dt>

是否觸發全局 ajax 事件。預設值: true。設定為 false 将不會觸發全局 ajax 事件,如 ajaxstart 或 ajaxstop 可用于控制不同的 ajax 事件。

<dt>ifmodified</dt>

僅在伺服器資料改變時擷取新資料。預設值: false。使用 http 包 last-modified 頭資訊判斷。在 jquery 1.4 中,它也會檢查伺服器指定的 'etag' 來确定資料沒有被修改過。

<dt>jsonp</dt>

在一個 jsonp 請求中重寫回調函數的名字。這個值用來替代在 "callback=?" 這種 get 或 post 請求中 url 參數裡的 "callback" 部分,比如 {jsonp:'onjsonpload'} 會導緻将 "onjsonpload=?" 傳給伺服器。

<dt>jsonpcallback</dt>

為 jsonp 請求指定一個回調函數名。這個值将用來取代 jquery 自動生成的随機函數名。這主要用來讓 jquery 生成度獨特的函數名,這樣管理請求更容易,也能友善地提供回調函數和錯誤處理。你也可以在想讓浏覽器緩存 get 請求的時候,指定這個回調函數名。

<dt>password</dt>

用于響應 http 通路認證請求的密碼

<dt>processdata</dt>

預設值: true。預設情況下,通過data選項傳遞進來的資料,如果是一個對象(技術上講隻要不是字元串),都會處理轉化成一個查詢字元串,以配合預設内容類型 "application/x-www-form-urlencoded"。如果要發送 dom 樹資訊或其它不希望轉換的資訊,請設定為 false。

<dt>scriptcharset</dt>

隻有當請求時 datatype 為 "jsonp" 或 "script",并且 type 是 "get" 才會用于強制修改 charset。通常隻在本地和遠端的内容編碼不同時使用。

<dt>success</dt>

請求成功後的回調函數。

參數:由伺服器傳回,并根據 datatype 參數進行處理後的資料;描述狀态的字元串。

<dt>traditional</dt>

如果你想要用傳統的方式來序列化資料,那麼就設定為 true。請參考工具分類下面的 jquery.param 方法。

<dt>timeout</dt>

類型:number

設定請求逾時時間(毫秒)。此設定将覆寫全局設定。

<dt>type</dt>

預設值: "get")。請求方式 ("post" 或 "get"), 預設為 "get"。注意:其它 http 請求方法,如 put 和 delete 也可以使用,但僅部分浏覽器支援。

<dt>url</dt>

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

<dt>username</dt>

用于響應 http 通路認證請求的使用者名。

<dt>xhr</dt>

需要傳回一個 xmlhttprequest 對象。預設在 ie 下是 activexobject 而其他情況下是 xmlhttprequest 。用于重寫或者提供一個增強的 xmlhttprequest 對象。這個參數在 jquery 1.3 以前不可用。

繼續閱讀