解决ajax请求出错状态码为0的问题
2017-12-17 10:59
363 查看
今天在使用 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 还是发送了数据的,这是后台打印的相关参数信息
又一番思索,原来是表单出现了问题:
<form onsubmit="addBlog();"> //中间省略 <button type="submit">发表博客</button> </form>
可以看到,我在 button 标签添加了 type=”submit”属性,但这样做会产生新的一次表单点击提交,本来form 默认点击 button 时会产生一次提交 , button type=”submit” 时又会产生新第一次提交,导致 ajax 未执行完毕表单事件发生了改变。
解决方法 : 将上面代码改为:
<form onsubmit="return false"> //中间省略 <button onclick="addBlog()">发表博客</button> </form>
相关文章推荐
- 快速解决ajax请求出错状态码为0的问题
- Javascript 中采用AJAX异步请求数据出错问题(没有搞清readystate几个状态)
- 解决axios跨域请求出错的问题状态码403错误
- 【问题解决】前台AJAX请求向Java后台传时+号变为空格—其他特殊字符解析出错也可参考解决
- Express搭建服务器接受Ajax请求时解决跨域访问控制问题
- 解决浏览器记住ajax请求并能前进和后退问题
- 关于ajax请求跨域问题解决
- 解决ajax跨域请求问题
- easyui+rest服务,ajax请求session过期不跳转问题解决
- PHP解决mui前端框架中的ajax请求跨域问题
- FireFox下Ajax同步请求onReadyStateChange不执行问题解决
- 在ie中关于ajax请求获得数据缓存问题的解决办法
- 解决Ajax请求缓存问题
- jquery 请求ie缓存,数据不更新的问题【ajax禁用缓存解决ie数据不更新的问题】
- STRUTS+AJAX+JSP 请求到后台乱码问题解决方法
- jquery 请求ie缓存,数据不更新的问题【ajax禁用缓存解决ie数据不更新的问题】
- ajax请求跨域问题分析与解决
- springMVC3和springMVC4解决ajax跨域请求的问题
- 解决 ajax请求 跨域问题
- 用反向代理nginx proxy_pass配置解决ie8 ajax请求被拦截问题 ie8用nginx代理实现跨域请求访问 nginx405正向代理request_uri