在带有 HttpFox 的 Firefox 中显示 NS_BINding_ABORTED

我看到我站点中的一些服务器调用(用于跟踪目的)在通过 HttpFox 浏览时被 Firefox 中止。这是在单击某个链接时发生的,该链接加载同一窗口中的另一页面。弹出来就行了。显示的错误类型为 NS _ BINding _ ABORTED。我需要知道追踪电话是不是打到服务器上了。 和 Internet Explorer 很搭。工具有什么问题吗?在这种情况下,你可以建议任何可以在 Firefox 中使用。

215536 次浏览

您不应该仅仅因为看到类似于失败代码(NS_BINDING_ABORTED)的内容而感到担心。

一个帖子中,Firefox 开发人员确认 NS_BINDING_ABORTED仅仅表示页面加载已经停止。

在加载另一个页面时打开一个页面会取消第一个页面上的加载,这似乎很正常。这并不一定意味着在请求发送到服务器之前已经中止了加载,这似乎正是您所关心的。

【编辑: 重写并删除了关于我不熟悉 HttpFox 的部分,因为在2022年看到这个的人可能不会再使用它了。】

你在页面上还有什么其他的 javascript? 一些 javascript 可能被触发导致请求被中止。

我在申请表上也注意到了。我在 javascript 中重定向页面(window.location =’/some/page.html’) ,但是在代码块的下面,我调用了‘ window.reload ()’。之前的重定向被中止,因为调用了 window.reload。

我不知道您正在使用什么跟踪,但是有可能请求被发送到您的服务器,但是请求被中止,因为之后发出了另一个请求。

我也遇到过类似的问题,但已经找到了原因。

我在表格行的第一个单元格中有一个链接,一些 Javascript 跨行的其他 TD 复制了这个链接。当我点击“真实”链接(在第一个单元格中)时,我得到了这个不想要的副作用; 当我点击行中的其他单元格时,一切都很好。我觉得这是因为脚本添加了第二个链接到第一个单元格,当它已经有一个。

因此,对同一页面的两个即时请求,第一个请求被第二个请求中止。

这种技术相当普遍,因此需要注意。

最佳方法-使用 JavaScript“ setInterval”方法,根据页面加载的时间延迟从最小的‘0’到最大的‘100’毫秒,我们可以在默认页面提交请求被处理之后执行我们的跟踪链接请求。

世界最佳解决方案:

var el = document.getElementById("t");
el.addEventListener("click", avoidNSError, false); //Firefox


function avoidNSError(){
ElementInterval = setInterval(function () {
/* Tracking or other request code goes here */
clearInterval(ElementInterval);
},0);


};

因为您的服务器没有发送 HTTPExires 头,所以浏览器正在检查其缓存中的内容是否是当前的。

它这样做的方式是向服务器发送一个请求,说明它在缓存中的日期,并且服务器正在发送304状态,告诉客户端它所拥有的是当前的。换句话说,服务器不会再次发送整个内容,而只是发送一个简短的标题,表示现有的缓存内容是当前的。

您可能需要修复 的地方是,向您所提供的服务添加过期标题。然后您将看到 NS _ BINding _ ABORTED 消息更改为(cache) ,这意味着浏览器只是从其缓存中获取内容,并且知道内容尚未过期。

我应该补充一点,当您执行 FireFox 强制刷新时,它假设您想要重新检查缓存中的内容,因此它暂时忽略了过期。

NS_BINDING_ABORTED错误可能有多种原因。

在我的例子中,它是从服务器接收的响应头中的垃圾,基本上是 HTTP 协议违规。

使用像 小提琴手这样的网络调试代理有时可能比浏览器自己的调试控制台更好地揭示这些问题(我认为 HttpFox 现在的调试控制台做得更好) ,或者至少显示更详细的信息或更清晰的错误信息。

在我的例子中,同样的 NS_BINDING_ABORTED错误,但这是因为我单击以触发事件的“按钮”元素缺少属性“ type”值“ commit”= 如何防止按钮提交表单

我知道这是一个很老的问题,但是最近我在 Firefox 95上遇到了这个问题。由于这个代码,我的一个同事制作的一个古老应用程序的图片没有被加载(或者随机加载) :

window.addEventListener('focus', function() {
// omit other code...
location.reload();
}

一旦将此代码嵌套到“ load”侦听器中,问题就完全消失了。

根据我的案例经验,由于 <form>...</form>之间缺少关闭的标记,导致 NS _ BINding _ ABORTED 发生 例如:

<form name="myform" action="submit.php" method="post">
<div class="myclassinput">
<input type="text" name="firstname">
<input type="text" name="lastname">
<input type="submit" value="Submit">


</form>

还有就是我忘了在 </form>之前写结束 </div>标签。

我在这里注明我的经验,以防万一... 对我来说,这是一个本地开发服务器上的网站(地址192..。等等) ,这是放在网上的一个已经使用的网址,如 < a href = “ http://www.something. com”rel = “ nofollow norefrer”> www.something.com 其结果是 MP4视频(通过 H5P 库)不能播放,但允许在进度条中滚动。当我复制/粘贴这个视频的 URL 时,我的笔记本电脑上出现了这个 NS _ BINding _ ABORTED 错误,而我的同事在同一个互联网连接上查看这个错误没有任何问题。

我做了一个 ipconfig/release 和/续约,然后重新启动我的电脑,它是固定的... 也许是一些旧的数据冲突,以前的内容在这个已经使用的 URL 域名?我不知道。