偶然碰到一个小Bug
ajax请求执行后返回了一个canceled(状态码)
但是后台却接受了参数并且执行成功0。0
刚看到这个状态的时候是一脸懵逼的、、、、
之前并没见过这样的状态码
经过参数确认并且再三确认
并没有发现什么异常、、、、
后来发现Url在请求的时候被莫名其妙的带上了些参数
经过检查html代码发现莫名其妙的出现了一个form标签
而我的提交按钮绝然还是个submit!!
没错,我在给人家擦屁股
原因
究其原因
仅仅是因为form action事件与绑定与submit按钮上的click事件同时触发。
form action将表单内容以参数的形式追加到了url的末尾
而url变更则会导致页面重新加载
而这恰恰就是导致post请求在执行后就立即被终止的罪魁祸首!!
小结
1.在URL变更后,会对当前正在执行的ajax进求进行中止操作
2.在使用到ajax的时候,尽量不要在form内使用submit进行提交