Об ошибках в jQuery ajax не сообщается - PullRequest
3 голосов
/ 30 августа 2011

У меня проблемы с обработчиком успеха jQuery ajax.О любых ошибках во время выполнения JavaScript, возникающих в обработчике успеха, похоже, не сообщается (в консоли ошибок Firefox ошибок не появляется).И попытка отладки без уведомления об ошибках сводит меня с ума.Может ли кто-нибудь взглянуть на упрощенную версию моего кода ниже и сообщить мне, если я делаю что-то глупое, что может быть причиной проблемы.

Если нет, если кто-то может проверить это в Firefox и подтвердить (или нет), что сообщения об ошибках не появляются, и это не только я схожу с ума (или что-то не так с моей установкой Firefox или что-то).Я также разместил код в Интернете - чтобы вы могли просто нажать ниже, чтобы проверить его ....

http://www.alisonstrachan.co.uk/tests/ajax2/ajax_test2.html

ajax_test2.html

<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.2.js"></script>
<script type="text/javascript">

$(document).ready(function(){

    //alert(missingVariable1);           //uncomment -> get error reported (as expected)

    $.ajax({
        url: "ajax_test2_process.php",
        data: {send: "hello"},
        async: false,
        success: function(data){
            $("#results").append(data);
            alert(missingVariable2);     //no error reported (there should be surely?)
            $("#results").append(" finished ");
            }
        });
});

</script>
</head>
<body>
<div id="results"></div>
</body>
</html>

ajax_test2_process.php

<?php
    echo "received: " . $_REQUEST['send'];
?>

Ответы [ 4 ]

1 голос
/ 30 августа 2011

Это может быть связано с Adblock Plus или аналогичным расширением (проверьте установленные расширения), см. ошибка 653533 .

1 голос
/ 30 августа 2011

Я предполагаю, что он молча терпит неудачу из-за jQuery , оборачивающего обратный вызов в попытку ... catch .

Итак, проще говоря, любые ошибки или плохой код, найденный в обратном вызовефункция просто молча выйдет из строя (и всплывет попытка ... поймал, как я обрисовал), а затем остановит обработку, где она лежит.

0 голосов
/ 30 августа 2011

вы также можете попробовать обернуть ваш ajax в объект, подобный jquery docs предлагает:

var jqxhr = $.ajax({ url: "example.php" })
    .success(function() { alert("success"); })
    .error(function() { alert("error"); })
    .complete(function() { alert("complete"); });
0 голосов
/ 30 августа 2011

Посмотрите на другие обратные вызовы для функции Ajax (http://api.jquery.com/jQuery.ajax/) - вы можете взглянуть на error, а также statusCode - Firebug также очень полезен для исследования проблем, связанных с ajax - вы можетесм. сообщение и ответ для связи ajax.

Если вы хотите войти в консоль firebug, используйте console.log('text');

...