我有一个链接,点击它的请求应该去Web服务器,并在成功执行重定向应该发生。我已经使用 AJAX ,但我得到的HTTpFox NS_Binding_Aborted错误。代码:
<a id="lnkredirect" href="javascript:void(0);" onclick="myfunction();">Some text</a>
AJAX 代码:
function myfunction(){
$.ajax({
url: Web server Url,
type: 'POST',
datatype: 'JSON',
timeout: 20000,
data: null,
success: function{ $("#lnkredirect").attr('href','redirection link...');},
error : function{ $("#lnkredirect").attr('href','redirection link...');}
)};
return true;
}
重定向正在发生,但我在Firefox中得到NS_Binding_Aborted错误。在成功和错误的情况下,重定向应该发生,但为什么NS_Binding_Aborted来了,我不确定这一点。NS_Binding_Aborted错误应该来只有当一个事件取消一些以前运行的事件,但我已经抑制了链接的href和重定向它一旦 AJAX 请求被执行,所以应该只有一个服务器调用,NS_Binding_Aborted不应该出现。2请告诉我哪里出错了?
3条答案
按热度按时间dgenwo3n1#
我遇到了类似的问题,在onclick中同时使用href和XmlHttpRequest时也遇到了类似的问题。我的XMLHttpRequest被中止(ns_binding_aborted),因此从未达到状态200。我还可以在Firefox控制台中看到我的XHR被“devtools阻止”。
这是因为页面在完成任务(onclick中的内容)之前(通过href)被重新加载了。
我有过这样的经历:
我通过在下载链接中添加一个target="_blank”来修复这个问题,这样在单击时就不会重新加载页面,从而使XMLHttpRequest能够成功完成。
t9aqgxwy2#
这是由于另一个请求中止了你的请求。一般来说,当你的目标是重新加载所有页面的数据时,只需结束请求,不要同步请求,这是一个小的novell错误。
在这种情况下,“返回“语句是有问题的,返回语句必须在成功部分。
k2arahey3#
当我将调用原生js表单提交事件更改为jQuery提交事件时,我的问题得到了修复。