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