A. ajax獲取數據,後端傳回的數據有時格式錯誤,或者其他問題,前端怎麼判斷並彈出錯誤
前端的js錯誤要catch住嘛。。
catch住有錯誤,可以告訴用戶,伺服器出錯,請重試
B. Ajax根據後台返回值判斷請求成功還是失敗
這個應當是ajax請求超時了,ExtJS做Ajax請求的時候,默認的相應時間是30秒,如果後來數據查詢時間超過30秒,ExtJS就會報錯,這就需要在Ajax開始後設置連接超時時間限制:
Ext.onReady(function() {
Ext.Ajax.timeout = 時間超時設置值,單位秒;
}
C. jquery ajax 怎麼判斷請求失敗
請求失敗的定義應該是限定時間內伺服器沒有返回數據。
你需要定義一個超時時間,比如5秒
在發起請求時,用setTimeout定義一個5秒後執行的函數,這個函數被執行了,就表示超時
在success回調函數裡面調用clearTimeout 清除延時函數,這樣如果請求在5秒內成功,超時函數就不會被執行了
另外,在超時回調函數裡面調用 abort 終止超時的請求,免得超時回調函數執行了,到第5秒之後更長時間,請求返回了,success就執行了。
D. 如何檢測ajax因網路斷開或延時導致的錯誤並重連
$.ajax({
async:true,//true非同步,false同步
url:'',
data:$(this).serialize(),
type:'get',
dataType:'json',//xml,html,script,json,jsonp,text
complete:function(XHR,TS){alert('complete');},//完成回調函數(XHR,TS)
error:function(XMLHttpRequest,textStatus,errorThrown){
//XMLHttpRequest.readyState:
//0-(未初始化)還沒有調用send()方法
//1-(載入)已調用send()方法,正在發送請求
//2-(載入完成)send()方法執行完成,已經接收到全部響應內容
//3-(交互)正在解析響應內容
//4-(完成)響應內容解析完成,可以在客戶端調用了
//XMLHttpRequest.status:
//textStatus:"timeout","error","notmodified"和"parsererror"。
//(0)null
//(1)timeout超時
//(2)error
//(3)notmodified未修改
//(4)parsererror解析錯誤
console.log(XMLHttpRequest);
console.log(textStatus);
console.log(errorThrown);
},//默認值:自動判斷(xml或html)。請求失敗時調用此函數。有以下三個參數:XMLHttpRequest對象、錯誤信息、(可選)捕獲的異常對象。
success:function(response){alert('success');}
});
可以通過error的狀態來判斷請求狀態,來做異常處理。
E. jquery或者js如何判斷當前網路是否暢通,我的頁面是給手機用的
可以用jquery模擬下載一個文件,然後限定時間,如果在這個限定時間內,下載完,就說明網路是暢通的,如果超時,就說明網路是不暢通的。
F. $.ajax 執行時如何判斷網路是否斷線
我覺得上面的回答,理論上可行,但是實際操作時不靠譜
每次請求之前都還要想後台請求一次,開銷問題不容小覷
而且實際上,你也不能保證上次請求成功了就代表這次請求時還是保持網路暢通
我的解決方案是設置一個ajax的執行時間
如果網路擁堵或斷開時,客戶端這頭超過了規定時間即提示用戶
$.ajax({
url:"xxx",
//1秒後超時
timeout:1000,
error:function(xmlHttpRequest,error){
//提示超時或操作失敗
}
});
你用的本身就是jquery的框架,只要版本高,就不會出現兼容性問題
G. ie瀏覽器ajax請求異常
在ie9以下,你就要用兼容性寫法了。先確保js中不報錯,js報錯了就很容易不往下執行了。再看ajax參數格式是不是寫錯了,再看ajax的一些基本屬性寫沒寫,再找不到就打斷點一個一個地方測,最後在考慮是不是兼容性問題
望採納
H. jquery ajax 怎麼判斷請求異常
responseTxt - 包含調用成功時的結果內容
statusTXT - 包含調用的狀態
xhr - 包含 XMLHttpRequest 對象
下面的例子會在 load() 方法完成後顯示一個提示框。如果 load() 方法已成功,則顯示"外部內容載入成功!",而如果失敗,則顯示錯誤消息:
實例
$("button").click(function(){
$("#div1").load("demo_test.txt",function(responseTxt,statusTxt,xhr){
if(statusTxt=="success")
alert("外部內容載入成功!");
if(statusTxt=="error")
alert("Error: "+xhr.status+": "+xhr.statusText);
});
});
I. 有關Jquery ajax 提交後返回值異常的問題 請大神幫看一下哪裡出問題了
這個符號我也遇見了,原因是返回的字元串中有"\1",這是其中一個原因。歡迎追問。