今天在使用 ajax 向后臺請求數據時出現錯誤,提示狀態碼為 0 ,后臺采用的是 spring mvc 架構。
狀態碼為0是什么意思呢?查找了下,原來它意味著 (未初始化)即沒有調用到send()方法,我原來代碼如下 :
$.ajax({url:"test",type:"post",data:{ blogTitle : $("#form1 input").val(), blogType : $("#form1 option:selected").val(), article : htmlcontent},dataType: "json",success: function(data,textStatus){ if(data.flag == "success"){ alert("發表成功!"); window.location.; } },error: function(XMLHttpRequest, textStatus, errorThrown){ alert(XMLHttpRequest.status); alert(XMLHttpRequest.readyState); alert(textStatus);} });
仔細檢查,好像沒什么不對勁的啊,況且在后臺都能正常接收發送的數據了,說明 ajax 還是發送了數據的,這是后臺打印的相關參數信息
又一番思索,原來是表單出現了問題:
<form onsubmit="addBlog();">//中間省略<button type="submit">發表博客</button> </form>
可以看到,我在 button 標簽添加了 type=”submit”屬性,但這樣做會產生新的一次表單點擊提交,本來form 默認點擊 button 時會產生一次提交 , button type=”submit” 時又會產生新第一次提交,導致 ajax 未執行完畢表單事件發生了改變。
解決方法: 將上面代碼改為:
<form onsubmit="return false">//中間省略<button type="addBlog()">發表博客</button>
以上這篇快速解決ajax請求出錯狀態碼為0的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持錯新站長站。
新聞熱點
疑難解答
圖片精選