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