今天在使用 ajax 向后台请求数据时出现错误,提示状态码为 0 ,后台采用的是 spring mvc 架构。
状态码为0是什么意思呢?查找了下,原来它意味着 (未初始化)即没有调用到send()方法,我原来代码如下 :
function addBlog(){
$.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.href = 'http://www.baidu.com';
}
},
error: function(XMLHttpRequest, textStatus, errorThrown){
alert(XMLHttpRequest.status);
alert(XMLHttpRequest.readyState);
alert(textStatus);
}
});
}
仔细检查,好像没什么不对劲的啊,况且在后台都能正常接收发送的数据了,说明 ajax 还是发送了数据的,这是后台打印的相关参数信息
![这里写图片描述](https://img-blog.csdn.net/20171217100002608?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMjM0ODM2NzE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
又一番思索,原来是表单出现了问题:
<form onsubmit="addBlog();">
//中间省略
<button type="submit">发表博客</button>
</form>
解决方法 : 将上面代码改为:
<form onsubmit="return false">
//中间省略
<button onclick="addBlog()">发表博客</button>
</form>