首先检查该标签是否有action属性,如果没有,且最后一个标签的type属性为'submit',默认提交位置为当前页面
如果在检测页面右键,点击网络,就会在
首先检查该标签是否有action属性,如果没有,且最后一个标签的type属性为'submit',默认提交位置为当前页面
如果你在页面右键检测并点击网络,你会发现开头有这样一个post包:
左侧消息头可见,请求URL为当前URL,响应返回类型为html
所以只要将form表单中最后一个提交按钮的type="submit"改为type="button",并使该按钮成为原生按钮即可,
可以正确使用ajax传输数据,原因是表单最后一个提交按钮与使用ajax传输数据冲突
因为这个原因,我浪费了很多时间,甚至把代码从头到尾写了一遍(感觉好傻!),并总结了调试过程。
先贴ajax代码:
$(function () { $("#register").on('click',function () { $.ajax({ type: 'post', url:"{:url('insert')}", data:$('#login').serialize(), dataType:'json', success:function (data) { alert('成功'); }, error:function () { alert('error'); } }) }) });
这里“#register”是提交按钮,“#login”是表单,url 被发送到 php 脚本(它将表单数据插入数据库)。
用Google Chrome打开页面,点击注册按钮,当前页面刷新,没有任何反应。
正常情况下ajax执行正确或者失败。 根据上面的代码,应该有一个消息弹窗,所以我感觉那里有问题。
打开数据库,发现表单的数据已经插入到数据库中jquery弹出消息框,说明后台php脚本运行成功,但是返回数据时出现问题。
右键检测发现post包,发现响应返回类型是html,而我设置的返回类型是json。
我更换了Edge浏览器,问题也是数据库插入数据,但是没有消息弹窗。
更换火狐浏览器jquery弹出消息框,再次点击注册按钮,出现消息弹窗,但一闪就消失了! 隐约发现弹窗显示为‘错误’(感谢火狐浏览器!)
总结
以上就是小编给大家介绍的解决JQuery ajax函数执行失败、闪出alert函数问题的解决方案。 希望对您有所帮助。 如果您有疑问,请给我留言,编辑会及时回复您。 的!
发表评论