☺
先说一下作者遇到的问题,本地开发测试都可以完美运行,一到线上就开始ajax请求浏览器给cancel,虽然这个请求cancel了,但是controller里的代码执行了
控制器代码:
1 | public function edit_index_article(){ |
表单代码:
1 | <form class="layui-form"> |
开始debug,由于数据更新成功,怀疑代码执行到ajaxreturn返回状态码挂了,修改返回格式,失败。然后怀疑是浏览器插件自动取消请求,缓存问题,都不是。
产生问题的原因:
在本地运行上边的代码的时候,控制台会有报错,并且会有两个请求如下图:
这里有两个请求一个成功了,一个取消了,并且是我们需要的那个请求成功了,经过排查,第二个请求是layui框架使用form表单后,框架本身会自动给提交表单的数据。我们并不需要这个请求,一到线上,这个请求失败导致ajax的请求也失败。
经过大佬的指定,最后确定了原因是因为 form表单里边如果包含button按钮的话,并且按钮没有指定type的时候,会默认submit,提交form表单!!!!
解决办法:
给button按钮添加type=”button”