NS_BINDING_ABORTED Показан в Firefox с помощью HttpFox

Я вижу некоторые вызовы сервера (используемые для отслеживания) на моем сайте, которые прерываются в Firefox, просматривая HttpFox. Это происходит при нажатии на ссылку, которая загружает другую страницу в том же окне. Он отлично работает с всплывающим окном. Отображаемый тип ошибки: NS_BINDING_ABORTED. Мне нужно знать, что вызов отслеживания ударяет по серверу или нет. Он отлично работает с Internet Explorer. Это проблема с инструментом? В этом случае вы можете предложить любые, которые могут быть использованы и в Firefox.

Ответы

Ответ 1

Итак, проблема в том, что используемый вами инструмент (HttpFox) сообщает вам какой-то код ошибки (NS_BINDING_ABORTED), который вы не понимаете?

http://markmail.org/message/m6z77uoixf3qu7u6 может быть полезно.

Также из вашего краткого описания и без фактического знания того, что такое HttpFox, звучит совершенно нормально, что открытие страницы при загрузке другой страницы отменяет нагрузку на первой странице. Это не означает, что нагрузки были прерваны до того, как запрос был отправлен на сервер, что, похоже, вас беспокоит.

Ответ 2

Поскольку ваш сервер не отправляет заголовки http Expires, браузер проверяет, является ли то, что находится в нем, текущее.

То, как это делается, - это отправить серверу запрос о том, какая дата того, что у него есть в кэше, и сервер отправляет 304 статус, сообщающий клиенту, что то, что у него есть, является текущим. Другими словами, сервер не отправляет все содержимое снова, а вместо этого отправляет только короткий заголовок, чтобы сказать, что существующее содержимое кэша является текущим.

Возможно, вам нужно исправить, чтобы добавить заголовки Expires к тому, что вы обслуживаете. Затем вы увидите, что сообщение NS_BINDING_ABORTED изменилось на (cashe), что означает, что браузер просто получает контент из него cashe, зная, что он еще не истек.

Я должен добавить, что когда вы принудительно обновляете FireFox, предполагается, что вы хотите дважды проверить, что находится в наличных деньгах, поэтому он временно игнорирует Expires.

Ответ 3

Какой еще javascript у вас есть на странице? Возможно, некоторые javascript запускают, чтобы запрос прерывался.

Я заметил то же самое в своем приложении. Я перенаправлял страницу в javascript (window.location = '/some/page.html), но затем дальше по блоку кода я вызывал "window.reload()". Предыдущее перенаправление было прервано, потому что вызывается window.reload.

Я не знаю, какое отслеживание вы используете, но возможно, что запрос отправляется на ваш сервер, но запрос прерывается, потому что после этого был выдан другой запрос.

Ответ 4

У меня возникла аналогичная проблема, но я определил причину.

У меня есть ссылка в первой ячейке строки таблицы и некоторый Javascript, который реплицирует эту ссылку по другому TD строки. Когда я нажимаю "реальную" ссылку (в первой ячейке), я получаю этот нежелательный побочный эффект; когда я нажимаю на другие ячейки в строке, все в порядке. Я чувствую это, потому что script добавляет вторую ссылку к первой ячейке, когда она уже есть.

Следовательно, два мгновенных запроса для одной и той же страницы, причем первая из них прерывается второй.

Этот метод довольно распространен, поэтому нужно что-то посмотреть.

Ответ 5

Ошибка NS_BINDING_ABORTED - лучший подход - использование JavaScript-метода setInterval с задержкой времени от "0 до max" 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);

};

Ответ 6

У меня возникла аналогичная проблема, когда отсутствовали некоторые ресурсы (шрифты), которые пыталась вызвать страница. Если вы только получаете проблему в Firefox, Firefox пытается получить немного другой ресурс, чем IE?