为什么ajax请求状态码为0,ajax请求状态码为0的解决办法
原文鏈接:https://blog.csdn.net/changqing5818/article/details/53932463
前言
今天遇到個奇怪的問題,使用JQuery的ajax請求,后臺的Controller層也接收到請求了,一切處理很正常,但是很奇怪,瀏覽器Debug發現,responseText是”error”,狀態碼是0而不是200.
請求源碼如下
$.ajax({
type: "POST",
url: targetUrl,
cache: false,
data:post_data,
dataType:"json",
async: true, // 默認為異步請求
error: function(error) {
console.log(error);
},
success: function(data) {
//...
}
});
狀態含義
0 - (未初始化)還沒有調用send()方法
1 - (載入)已調用send()方法,正在發送請求
2 - (載入完成)send()方法執行完成
3 - (交互)正在解析響應內容
4 - (完成)響應內容解析完成,可以在客戶端調用了
問題分析
Query ajax請求錯誤返回status 0和錯誤error的問題,分析可能的原因:
url不存在(排除) – Controller層定義正確
url不可達(排除) – 后臺確實接收到請求了,而且處理正確
發送了跨域請求(排除) – 使用CORS Filter, 測試發現也不是
數據格式錯(排除) – 瀏覽器和后臺調試發現,數據格式正確
ajax在完成之前請求已經被取消(ajax請求沒有發出) – 確實是canceled,但是請求確實發出了
請求超時 – 確認問題
解決辦法
使用異步請求
將timeout時長設置稍長一點
$.ajax({
type: "POST",
url: targetUrl,
cache: false,
data : post_data, // 傳參
dataType : "json",
async: false, // 使用同步操作
timeout : 50000, //超時時間:50秒
error: function(error) {
console.log(error);
},
success: function(data) {
//...
}
});
版權聲明:作者寫博是為了總結經驗,和交流學習之用。 如需轉載,請在文章頁面明顯位置給出原文連接。謝謝!如有問題,請留言!
原文:https://www.cnblogs.com/leeke98/p/8994296.html
總結
以上是生活随笔為你收集整理的为什么ajax请求状态码为0,ajax请求状态码为0的解决办法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2022-2028年中国医学模拟教育产品
- 下一篇: 猪血炖豆腐的做法??