今天遇到一个郁闷的问题,执行ajax方法,瞬间进入error回调函数,但是服务端方法已经成功,数据也存到数据库里了,但是了解了以后发现还挺简单的,不了解怎么都不明白为什么,因为他没有报错。
问题:
- 一个按钮触发JS方法,alert(),confirm()后就刷新页面,没有执行JS刷新代码。
- 一个按钮触发$.ajax()方法,秒进error回调函数,但是服务端数据存入数据库成功。
原因:
开发的时候把<button>按钮放在<form>外面,上线的时候,为了美观,把<button>放到</form>前,结果就出问题了。因为<button>的type属性默认值为submit,放在<form>里提交后就变成默认的表单提交,服务端方法是针对ajax请求的,ajax方法被表单提交代替后,接收不到返回值,就进入error回调函数了。
解决:
给<button>的type属性设置其他值,或者把<button>放在<form>外面,或者用其他方式触发JS方法。
本文完!谢谢观看!