Подтвердить что ты не робот

Как отладить неудавшийся запрос ajax в Google Chrome?

У меня есть веб-приложение, которое разбивается на запросы ajax с помощью google chrome (он работает с любым другим веб-браузером, на котором он был протестирован). После отладки я обнаружил, что ошибка вызвана ответом response.responseText undefined. Объект xhr выглядит так:

argument: undefined
isAbort: false
isTimeout: undefined
status: 0
statusText: "communication failure"
tId: 3

В отладчике на вкладке "сеть" я получаю "(неудачно)", однако все заголовки есть, и я даже могу скопировать в буфер обмена тело ответа (которое является действительным JSON).

Мой вопрос: как я могу отладить эту проблему? Где найти дополнительную информацию, что приводит к сбою этого запроса?

4b9b3361

Ответ 1

Первое, что я бы дважды проверил, - это то, что данные, возвращаемые из ответа, действительны JSON. Просто передайте его через валидатор JSON, подобный этому онлайн JSONLint: http://jsonlint.com/

Я предполагаю, что вы используете что-то вроде jQuery для выполнения ваших запросов AJAX. Если это так, убедитесь, что вы используете версию разработки этой библиотеки. Теперь, когда вы используете версию разработки (несжатой) script, найдите конкретную функцию, которую используете (например, $.ajax), а затем в инспекторе Chrome вставьте точку останова в код, где ответ AJAX (например, https://github.com/jquery/jquery/blob/master/src/ajax.js#L579). Затем переходите к выполнению кода, проверяя различные возвращаемые значения, чтобы точно увидеть, что происходит.

Если вы не используете что-то вроде jQuery для совершения AJAX-вызовов, я бы рекомендовал использовать фреймворк, чтобы избежать возможных проблем с совместимостью между браузерами, как вы могли бы испытывать прямо сейчас.

Ответ 2

Наконец-то я нашел решение своей проблемы: AdBlocks, этот плагин является одним из самых полезных здесь, но когда он блокирует что-то на вашем сайте, он не говорит, почему!