$.ajax(options) |
|
參數(shù) |
|
options |
(對象)一個對象的實例,其屬性定義這個操作的參數(shù)。詳情見下表。 |
返回值 |
XHR實例 |
options詳細范圍值
名稱 |
類型 |
描述 |
url |
字符串 |
請求的url地址 |
type |
字符串 |
將要使用的HTTP方法。通常是POST或GET。如果省略,則默認為GET |
data |
對象 |
一個對象,其屬性作為查詢參數(shù)而傳遞請求。如果是GET請求,則把數(shù)據(jù)作為查詢字符串傳遞;如果是POST請求,則把數(shù)據(jù)作為請求體傳遞。在這兩種情況下,都是由$.ajax()實用工具函數(shù)來處理值的編碼 |
dataType |
字符串 |
一個關(guān)鍵字,用來標識預(yù)期將被響應(yīng)所返回的數(shù)據(jù)的類型。這個值決定再把數(shù)據(jù)傳遞給回調(diào)函數(shù)之前(如果有)進行什么后續(xù)處理。有效值如下: xml-響應(yīng)文本被解析為XML文檔,而作為結(jié)果的XML DOM被傳遞給回調(diào)函數(shù) html-響應(yīng)文本未經(jīng)處理就被傳遞給回調(diào)函數(shù)。在已返回HTML片段內(nèi)的任何script>塊將被求值 json-響應(yīng)文本被求值為JSON字符串,而作為結(jié)果的對象被傳遞給回調(diào)函數(shù) jsonp-與json相似,不同之處是提供遠程腳本支持(假定遠程服務(wù)器支持) script-響應(yīng)文本被傳遞給回調(diào)函數(shù)。在任何回調(diào)函數(shù)被調(diào)用之前,響應(yīng)被作為一個或多個JavaScript語句而進行處理 text-響應(yīng)文本被假定為普通文本。服務(wù)器資源負責設(shè)置適當?shù)膬?nèi)容類型響應(yīng)標頭。如果省略這個屬性,則不對響應(yīng)文本進行任何處理或求值就傳遞給回調(diào)函數(shù) |
timeout |
數(shù)值 |
設(shè)置Ajax請求的超時值(毫秒)。如果請求在超時值到期之前仍未完成,則中止請求并且調(diào)用錯誤回調(diào)函數(shù)(如果已定義) |
global |
布爾型 |
啟用或禁用全局函數(shù)的觸發(fā)。這些函數(shù)可以附加到元素上,并且在Ajax調(diào)用的不同時刻或狀態(tài)下觸發(fā)。默認啟用全局函數(shù)觸發(fā) |
contentType |
字符串 |
將要在請求上指定的內(nèi)容類型。默認為application/x-www-form-urlencoded(與表單提交所使用的默認類型相同) |
success |
函數(shù) |
如果請求的響應(yīng)指示成功狀態(tài)碼,則這個函數(shù)被調(diào)用。響應(yīng)體作為第一個參數(shù)被返回給這個函數(shù),并且根據(jù)指定的dataType屬性進行。第二個參數(shù)是包含狀態(tài)碼的字符串—這種情況下永遠為成功狀態(tài)碼 |
error |
函數(shù) |
如果請求的響應(yīng)返回錯誤狀態(tài)碼,則這個函數(shù)被調(diào)用。三個實參被傳遞給這個函數(shù):XHR實例、狀態(tài)消息字符串(在這種情況下永遠為錯誤狀態(tài)碼)以及XHR實例所返回的異常對象(可選) |
complete |
函數(shù) |
請求完成時被調(diào)用。兩個實參被傳遞:XHR實例和狀態(tài)消息字符串(成功狀態(tài)碼或錯誤狀態(tài)碼)。如果也指定了success或error回調(diào)函數(shù),則這個函數(shù)在success或error回調(diào)函數(shù)調(diào)用之后被調(diào)用 |
beforeSend |
函數(shù) |
在發(fā)起請求之前被調(diào)用。這個函數(shù)被傳遞XHR實例,并且可以用來設(shè)置自定義的標頭或執(zhí)行其他預(yù)請求操作 |
async |
布爾型 |
如果指定為false,則請求被提交為同步請求。在默認的情況下,請求是異步的 |
processData |
布爾型 |
如果設(shè)置為false,則阻止已傳遞數(shù)據(jù)被加工為URL編碼格式。默認情況下,數(shù)據(jù)被加工為URL編碼格式(適用于類型為application/x-www-form-urlencoded的請求) |
ifModified |
布爾型 |
如果設(shè)置為true,則自從上一次請求以來,只有在響應(yīng)內(nèi)容沒有改變的情況下(根據(jù)Last-Modified標頭)才允許請求成功。如果省略,則不執(zhí)行標頭檢查 |
下面看個例子,盡可能多的用到options中的選項
客戶端代碼:
html xmlns="http://www.w3.org/1999/xhtml"> head> title>/title> script src="Scripts/jquery-1.4.1.min.js" type="text/javascript">/script> script type="text/javascript"> $().ready(function () { $('#selectNum').change(function () { var idValue = $(this).val(); var show = $('#show'); $.ajax({ url: 'Server.aspx', type: 'POST', data: { id: idValue }, //調(diào)小超時時間會引起異常 timeout: 3000, //請求成功后觸發(fā) success: function (data) { show.append('success invoke!' + data+'br/>'); }, //請求失敗遇到異常觸發(fā) error: function (xhr, errorInfo, ex) { show.append('error invoke!errorInfo:' + errorInfo+'br/>'); }, //完成請求后觸發(fā)。即在success或error觸發(fā)后觸發(fā) complete: function (xhr, status) { show.append('complete invoke! status:' + status+'br/>'); }, //發(fā)送請求前觸發(fā) beforeSend: function (xhr) { //可以設(shè)置自定義標頭 xhr.setRequestHeader('Content-Type', 'application/xml;charset=utf-8'); show.append('beforeSend invoke!' +'br/>'); }, //是否使用異步發(fā)送 async: true }) }); }) /script> /head> body> select id="selectNum"> option value="0">--Select--/option> option value="1">1/option> option value="2">2/option> option value="3">3/option> /select> div id="show">/div> /body> /html>
服務(wù)端主要代碼:
protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { if (Request["id"] != null !string.IsNullOrEmpty(Request["id"].ToString())) { //啟用該句會引發(fā)ajax超時異常 // System.Threading.Thread.Sleep(3000); Response.Write(GetData(Request["id"].ToString())); } } } protected string GetData(string id) { string str = string.Empty; switch (id) { case "1": str += "This is Number 1"; break; case "2": str += "This is Number 2"; break; case "3": str += "This is Number 3"; break; default: str += "Warning Other Number!"; break; } return str; }
運行程序,結(jié)果如圖:
標簽:內(nèi)蒙古 洛陽 邢臺 舟山 海南 林芝 鄭州 遼源
巨人網(wǎng)絡(luò)通訊聲明:本文標題《Jquery Ajax請求文件下載操作失敗的原因分析及解決辦法》,本文關(guān)鍵詞 Jquery,Ajax,請求,文件下載,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。