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

Как узнать, какой Javascript вызывает запрос JQuery Ajax?

Как найти код Javascript, с которого был вызван запрос Ajax? В консоли Firebug мы можем идентифицировать номер файла и строки, но если мы используем $.ajax или $.post или какую-то аналогичную функцию jQuery, он будет записывать только файл библиотеки jQuery в консоли Firebug. Есть ли способ получить фактическую точку запуска функции jQuery?

4b9b3361

Ответ 1

Используйте Chrome в DevTool у вас есть Sources.

Если вы откроете это, вы увидите на правой стороне XHR Breakpoints, если вы проверите Any XHR, ваш script будет приостановлен при каждом запросе, который использует XMLHttpRequest (поэтому когда-либо запрос, который не использует jsonp для запросы).

Если параметры Any XHR недоступны (отображается только No Breakpoints), вы должны нажать на + оставить поле Break when URL contains: пустым и нажать enter. Это создаст параметр Any XHR. (Спасибо за Yasmin French за эту информацию)

С помощью Call Stack (также с правой стороны) вы увидите, что происходило с запросом.

Но, как я уже говорил, это не ломается на запросы jsonp, если вы хотите трассировать их, вам нужно использовать недопустимую версию jQuery (или включить исходную карту мини-версии) и установить контрольную точку в ее источник в правильной части. Чтобы найти эту часть, вы можете использовать следующие шаги:

  • Создайте запрос jsonp в вашем коде и установите точку останова в этом месте.
  • Вызовите эту часть своего кода, чтобы вы переключились на отладчик.
  • Используйте Step into, теперь вы должны быть в коде jQuery. Если вы теперь разместите точку останова, Chrome остановится для каждого запроса jsonp.
Примечание. Иногда Chrome (возможно, только в версиях бета-версии или dev) имеет тенденцию потерять точки останова при перезагрузке, поэтому вам нужно проверить, все ли они существуют при перезагрузке.

Ответ 2

Возможно, это не было в предыдущих версиях Chrome, но в версии 56.0.2924.87 есть столбец "Инициатор", в котором сообщается файл html/js и точная строка в этом файле, который инициировал запрос.

Этот запрос может быть XHR, HTTP-запрос для jpg, css или что-то еще.

Довольно гладкий и полезный в отслеживании обратных запросов.

Здесь как его использовать?

  • Нажмите "F12", чтобы открыть консоль разработчика.
  • Ищите столбец "Инициатор" в каждом запросе, вы можете увидеть "jquery.min.js: 4", что означает, что запрос был инициирован из 4-й строки файла "jquery.min.js".

введите описание изображения здесь

Ответ 3

В chrome и firefox/firebug вы можете использовать console.trace() на . always() или, возможно, на обработчике beforeSend вашего ajax, чтобы узнать, кто его назвал.