Ошибка NS_Binding_Aborted для функции ajax

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

<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;
}

Перенаправление происходит, но я получаю ошибку NS_Binding_Aborted в Firefox. Как в случае успеха, так и в случае ошибки перенаправление должно произойти, но почему идет NS_Binding_Aborted, я не уверен в этом. Ошибка NS_Binding_Aborted должна появиться только в том случае, если одно событие отменяет какое-то предыдущее запущенное событие, но я уже подавил href ссылки и перенаправил ее после выполнения запроса ajax, поэтому должен быть только один вызов сервера, а NS_Binding_Aborted не должен приходить. Пожалуйста, дайте мне знать, где я ошибаюсь?


person mrityunjay    schedule 26.10.2012    source источник


Ответы (2)


Это вызвано другим запросом, который прерывает ваш запрос. Обычно, когда ваша цель - перезагрузить данные на всей странице, просто завершите запрос, а не синхронизируйте запрос, небольшая ошибка novell.
В этом случае проблема заключается в предложении "return", предложение "return" должно быть успешным.

person LKF    schedule 27.05.2013

У меня возникла аналогичная проблема, также при использовании как href, так и XmlHttpRequest внутри onclick. Мой XMLHttpRequest был прерван (ns_binding_aborted) и, таким образом, никогда не достиг статуса 200. Я также мог видеть, что мой XHR был заблокирован разработчиками в консоли Firefox.

Это произошло потому, что страница была перезагружена (с помощью href) до того, как она смогла завершить свою работу (что было в onclick).

У меня было что-то вроде этого:

<script type="text/javascript">
function incrementNumberOfDownloads() {
    var xhttp = new XMLHttpRequest();
    xhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) { // 4 = request ended, 200 = success
            //update displayed number of downloads
            document.getElementById("numberOfDownloads").innerHTML = this.responseText; 
        }
    };
    xhttp.open("GET", "incrementNumberOfDownloads.php", true);
    xhttp.send();
    return true;
}
</script>
<p id="numberOfDownloads">42</p>
<a href="files/myFileToDownload.zip" onclick="return incrementNumberOfDownloads();">Download my file !</a>

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

person RotS    schedule 03.03.2021