Jquery Ajax Error 調(diào)試錯(cuò)誤的技巧
JQuery使我們?cè)陂_發(fā)Ajax應(yīng)用程序的時(shí)候提高了效率,減少了許多兼容性問(wèn)題,我們?cè)贏jax項(xiàng)目中,遇到ajax異步獲取數(shù)據(jù)出錯(cuò)怎么辦,我們可以通過(guò)捕捉error事件來(lái)獲取出錯(cuò)的信息。
在沒給大家介紹正文之前先給分享Jquery中AJAX參數(shù)詳細(xì)列表:
參數(shù)名 | 類型 | 描述 |
url | String | (默認(rèn): 當(dāng)前頁(yè)地址) 發(fā)送請(qǐng)求的地址。 |
type | String | (默認(rèn): "GET") 請(qǐng)求方式 ("POST" 或 "GET"), 默認(rèn)為 "GET"。注意:其它 HTTP 請(qǐng)求方法,如 PUT 和 DELETE 也可以使用,但僅部分瀏覽器支持。 |
timeout | Number | 設(shè)置請(qǐng)求超時(shí)時(shí)間(毫秒)。此設(shè)置將覆蓋全局設(shè)置。 |
async | Boolean | (默認(rèn): true) 默認(rèn)設(shè)置下,所有請(qǐng)求均為異步請(qǐng)求。如果需要發(fā)送同步請(qǐng)求,請(qǐng)將此選項(xiàng)設(shè)置為 false。注意,同步請(qǐng)求將鎖住瀏覽器,用戶其它操作必須等待請(qǐng)求完成才可以執(zhí)行。 |
beforeSend | Function | 發(fā)送請(qǐng)求前可修改 XMLHttpRequest 對(duì)象的函數(shù),如添加自定義 HTTP 頭。XMLHttpRequest 對(duì)象是唯一的參數(shù)。function (XMLHttpRequest) { |
cache | Boolean | (默認(rèn): true) jQuery 1.2 新功能,設(shè)置為 false 將不會(huì)從瀏覽器緩存中加載請(qǐng)求信息。 |
complete | Function | 請(qǐng)求完成后回調(diào)函數(shù) (請(qǐng)求成功或失敗時(shí)均調(diào)用)。參數(shù): XMLHttpRequest 對(duì)象,成功信息字符串。function (XMLHttpRequest, textStatus) { |
contentType | String | (默認(rèn): "application/x-www-form-urlencoded") 發(fā)送信息至服務(wù)器時(shí)內(nèi)容編碼類型。默認(rèn)值適合大多數(shù)應(yīng)用場(chǎng)合。 |
data | Object, String |
發(fā) 送到服務(wù)器的數(shù)據(jù)。將自動(dòng)轉(zhuǎn)換為請(qǐng)求字符串格式。GET 請(qǐng)求中將附加在 URL 后。查看 processData 選項(xiàng)說(shuō)明以禁止此自動(dòng)轉(zhuǎn)換。必須為 Key/Value 格式。如果為數(shù)組,jQuery 將自動(dòng)為不同值對(duì)應(yīng)同一個(gè)名稱。如 {foo:["bar1", "bar2"]} 轉(zhuǎn)換為 '&foo=bar1&foo=bar2'。 |
dataType | String |
預(yù)期服務(wù)器返回的數(shù)據(jù)類型。如果不指定,jQuery 將自動(dòng)根據(jù) HTTP 包 MIME 信息返回 responseXML 或 responseText,并作為回調(diào)函數(shù)參數(shù)傳遞,可用值: "xml": 返回 XML 文檔,可用 jQuery 處理。 "html": 返回純文本 HTML 信息;包含 script 元素。 "script": 返回純文本 JavaScript 代碼。不會(huì)自動(dòng)緩存結(jié)果。 "json": 返回 JSON 數(shù)據(jù) 。 "jsonp": JSONP 格式。使用 JSONP 形式調(diào)用函數(shù)時(shí),如 "myurl?callback=?" jQuery 將自動(dòng)替換 ? 為正確的函數(shù)名,以執(zhí)行回調(diào)函數(shù)。 |
error | Function | (默認(rèn): 自動(dòng)判斷 (xml 或 html)) 請(qǐng)求失敗時(shí)將調(diào)用此方法。這個(gè)方法有三個(gè)參數(shù):XMLHttpRequest 對(duì)象,錯(cuò)誤信息,(可能)捕獲的錯(cuò)誤對(duì)象。function (XMLHttpRequest, textStatus, errorThrown) { |
global | Boolean | (默認(rèn): true) 是否觸發(fā)全局 AJAX 事件。設(shè)置為 false 將不會(huì)觸發(fā)全局 AJAX 事件,如 ajaxStart 或 ajaxStop 。可用于控制不同的Ajax事件 |
ifModified | Boolean | (默認(rèn): false) 僅在服務(wù)器數(shù)據(jù)改變時(shí)獲取新數(shù)據(jù)。使用 HTTP 包 Last-Modified 頭信息判斷。 |
processData | Boolean | (默認(rèn): true) 默認(rèn)情況下,發(fā)送的數(shù)據(jù)將被轉(zhuǎn)換為對(duì)象(技術(shù)上講并非字符串) 以配合默認(rèn)內(nèi)容類型 "application/x-www-form-urlencoded"。如果要發(fā)送 DOM 樹信息或其它不希望轉(zhuǎn)換的信息,請(qǐng)?jiān)O(shè)置為 false。 |
success | Function | 請(qǐng)求成功后回調(diào)函數(shù)。這個(gè)方法有兩個(gè)參數(shù):服務(wù)器返回?cái)?shù)據(jù),返回狀態(tài)function (data, textStatus) { |
jquery中ajax的常用用法類似于:
JScript 代碼
$(document).ready(function() { jQuery("#clearCac").click(function() { jQuery.ajax({ url: url, type: "post", data: { id: '0' }, dataType: "json", success: function(msg) { alert(msg); }, error: function(XMLHttpRequest, textStatus, errorThrown) { alert(XMLHttpRequest.status); alert(XMLHttpRequest.readyState); alert(textStatus); }, complete: function(XMLHttpRequest, textStatus) { this; // 調(diào)用本次AJAX請(qǐng)求時(shí)傳遞的options參數(shù) } }); }); });
當(dāng)通過(guò)ajax異步調(diào)用成功時(shí),會(huì)調(diào)用 success函數(shù) 。success函數(shù)語(yǔ)法為:
//請(qǐng)求成功后回調(diào)函數(shù)。這個(gè)方法有兩個(gè)參數(shù):服務(wù)器返回?cái)?shù)據(jù),返回狀態(tài) function (data, textStatus) { // data could be xmlDoc, jsonObj, html, text, etc... this; // the options for this ajax request } 當(dāng)通過(guò)ajax異步調(diào)用出錯(cuò)時(shí),會(huì)調(diào)用 error函數(shù) 。error函數(shù)語(yǔ)法為: //(默 認(rèn): 自動(dòng)判斷 (xml 或 html)) 請(qǐng)求失敗時(shí)調(diào)用時(shí)間。參數(shù)有以下三個(gè):XMLHttpRequest 對(duì)象、錯(cuò)誤信息、(可選)捕獲的錯(cuò)誤對(duì)象。如果發(fā)生了錯(cuò)誤,錯(cuò)誤信息(第二個(gè)參數(shù))除了得到null之外,還可能是"timeout", "error", "notmodified" 和 "parsererror"。 //textStatus: "timeout", "error", "notmodified" 和 "parsererror"。 error:function (XMLHttpRequest, textStatus, errorThrown) { }
error事件返回的第一個(gè)參數(shù)XMLHttpRequest:
XMLHttpRequest.readyState: 狀態(tài)碼的意思
0 - (未初始化)還沒有調(diào)用send()方法
1 - (載入)已調(diào)用send()方法,正在發(fā)送請(qǐng)求
2 - (載入完成)send()方法執(zhí)行完成,已經(jīng)接收到全部響應(yīng)內(nèi)容
3 - (交互)正在解析響應(yīng)內(nèi)容
4 - (完成)響應(yīng)內(nèi)容解析完成,可以在客戶端調(diào)用了
發(fā)送error可能有下面兩張引起的,或者其他程序問(wèn)題,需要我們認(rèn)真仔細(xì)。
1、data:"{}", data為空也一定要傳"{}";不然返回的是xml格式的。并提示parsererror.
2、parsererror的異常和Header 類型也有關(guān)系。及編碼header('Content-type: text/html; charset=utf8');
以上內(nèi)容是小編給大家分享關(guān)于Jquery Ajax Error 調(diào)試錯(cuò)誤的技巧,希望大家喜歡。
- 詳解ajax的data參數(shù)錯(cuò)誤導(dǎo)致頁(yè)面崩潰
- 快速解決ajax請(qǐng)求出錯(cuò)狀態(tài)碼為0的問(wèn)題
- PHP 中使用ajax時(shí)一些常見錯(cuò)誤總結(jié)整理
- 完美解決ajax跨域請(qǐng)求下parsererror的錯(cuò)誤
- ajax跨域訪問(wèn)報(bào)錯(cuò)501的解決方法
- jQuery中ajax錯(cuò)誤調(diào)試分析
- Ajax向后臺(tái)傳json格式的數(shù)據(jù)出現(xiàn)415錯(cuò)誤的原因分析及解決方法
- Ajax犯的錯(cuò)誤處理方法
- js ajaxfileupload.js上傳報(bào)錯(cuò)的解決方法
- 解決ajax返回驗(yàn)證的時(shí)候總是彈出error錯(cuò)誤的方法
- django使用ajax post數(shù)據(jù)出現(xiàn)403錯(cuò)誤如何解決
- Ajax報(bào)錯(cuò)400的參考解決辦法
相關(guān)文章
jQuery ui1.7 dialog只能彈出一次問(wèn)題
之前對(duì)于刪除操作,一直使用的是頭兒寫的通用的“確認(rèn)刪除”的方法2009-08-08JQuery 動(dòng)態(tài)生成Table表格實(shí)例代碼
這篇文章主要介紹了JQuery 動(dòng)態(tài)生成Table表格實(shí)例代碼的相關(guān)資料,這里附有實(shí)現(xiàn)實(shí)例代碼,具有一定的參考價(jià)值,需要的朋友可以參考下2016-12-12jQuery Mobile框架中的表單組件基礎(chǔ)使用教程
jQuery Mobile框架主要針對(duì)移動(dòng)端的Web UI設(shè)計(jì),其中豐富的表單組件調(diào)用起來(lái)也是相當(dāng)方便,接下來(lái)就為大家整理了一份jQuery Mobile框架中的表單組件基礎(chǔ)使用教程,需要的朋友可以參考下2016-05-05

JQuery UI的拖拽功能實(shí)現(xiàn)方法小結(jié)

jquery 跳到頂部和底部動(dòng)畫2句代碼簡(jiǎn)單實(shí)現(xiàn)

JQuery常見節(jié)點(diǎn)操作實(shí)例分析

基于jquery實(shí)現(xiàn)控制經(jīng)緯度顯示地圖與衛(wèi)星