我正在和jQuery进行一个ajax调用.在IE 7中,ajax调用工作正常,但是FireFox 3在进行此调用时始终会进行全页刷新. ajax调用是POST ASP.NET页面方法.
在jQuery中有问题吗或者我只是想丢一些设置?
$.ajax({ async: false,type: "POST",url: "Default.aspx/DoSomething",data: "{" + parms + "}",contentType: "application/json; charset=utf-8",dataType: "json",cache: false,success: function(data) { succesfulPost(data); },error: function(XMLHttpRequest,textStatus,errorThrown) { errorPost(textStatus,errorThrown); }
});
该通话由html按钮onclick事件进行.我尝试了“返回假”在做这个ajax调用的方法中,但FireFox的全面刷新仍在继续.
我尝试设置async = true,但这似乎不起作用. FireFox只是继续前进,不等待后端返回响应. FireFox(在js中)实际上是在ajax调用中产生错误.如上所述,错误函数是定义的,当我设置async = true时触发.
解决方法
返回false是您需要的,但是如果在您点击该行之前发生了JavaScript错误,那么浏览器会继续快速执行链接点击或按钮单击事件.
您可以尝试使用try / catch块尝试环绕潜在的问题区域.
或者你可以试试这个:
e.preventDefault作为处理程序中的第一个语句.这应该是停止默认事件的发生,我想你可以称之为前面…我只是没有尝试过.
编辑:我还想补充说,ajax错误:处理程序只捕获来自服务器的错误…像403或500.你还应该将ajax调用包装在一个try / catch中.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。