今天又是踩坑的一天。。。
项目要添加一个新功能,当然,新功能是有参考的,我是在其基础上做了些修改。
这里我做了修改功能,修改成功了,但最后跳转出现了问题——只能原页面跳转,而且跳转后的数据是修改前的数据!我尝试了各种方法,刚开始以为是前端jquery用localhost.href出现问题,我注释掉它,但还是那个问题,未得到解决;然后我试着修改后端跳转方式、路径等,但还是解决不了问题,我就看啊看,看啊看,最后我在浏览器的NetWork的请求跳转链接发现了问题!请看下图。
我试着搜索我框住的Status列的canceled状态,找到了答案。
原因:
仅仅是由于之前为了在输入账号时让浏览器进行自动补全,而将原先的div更换为了form,而不巧的是之前的登录事件源使用的是button。
而至于为什么status = canceled,是由于在提交时,form action与绑定于button上的click事件会同时触发。form action将表单内容以serach的形式追加至当前url上,url变更后会导致页面重新加载, 而这正是导致post请求在执行后就被终止的原因。
总结:
1.在URL变更后,会对当前正在执行的ajax进求进行中止操作。中止后该请求的状态码将为canceled
2.在使用到ajax的时候,尽量不要在form内使用button进行提交,这些特殊的标签在特定的情况下往往会有让你迷茫的时候。
上面的原因和总结我是复制其他博主的,参考网址:https://blog.csdn.net/u010855333/article/details/60766096
我:
我出现这个问题的原因是因为这个功能是新的,但有类似的功能,我为了节省时间都是复制粘贴之前别人做的,那人写的没有问题,我这稍微一改(我好像也没改到这些东西)就出现了问题,这问题搞了我好久,我都没往这方面想,因为那人这么做都没问题,我这么做却出现了问题。
我是把提交按钮加了个type="Button"就解决了问题。