2012-03-29 7 views
2

Возможно ли создать Javascript и включить его на веб-странице, чтобы функция этого JS заключалась в том, чтобы «поймать» весь запрос GET или любые другие вызовы Ajax, сделанные из любого другого Javascript на страница? Либо зарегистрировать его, либо просто показать его в поле «Предупреждение».Перехватить или уловить вызовы Ajax с Javascript

«Другой Javacript», который будет выполнять вызовы GET или Ajax, является произвольным. Я имею в виду, что я не могу контролировать это с точки зрения того, что это такое.

И однажды пойманный, мне нужно проверить, какой Javascript выполняет, какие GET или Ajax вызывает.

Возможно ли это?

+0

Нужно ли это для отладки? Все основные браузеры имеют это встроенное. – Yoshi

+0

На данный момент, поскольку кажется, что его непросто с простым Javascript, возможно, я могу использовать плагин браузера, однако Firebug не показывает, какой Javascript инициировал метод GET, например ... – xybrek

+0

... но мой требование действительно не для отладки, а для фактической функции приложения. – xybrek

ответ

11

Попробуйте этот фрагмент. Он расширяет функцию send, чтобы вы могли выполнить что-то до или после реальной отправки.

XMLHttpRequest.prototype.reallySend = XMLHttpRequest.prototype.send; 
XMLHttpRequest.prototype.send = function(body) { 
    // Do something... 
    this.reallySend(body); 
}; 
var req = new XMLHttpRequest(); 
req.open("GET", "any.html", true); 
req.send(null); 
+0

Прохладно это сработало. – xybrek

+0

Это сработало, и я смог поймать вызов Ajax, однако я не поймал запрос на HTML, который я ожидал, вероятно, потому что его не Ajax-вызов, вы знаете, как перехватывать события GET, вызванные Javascript? – xybrek

+0

@xybrek Вы можете использовать этот подход в качестве шаблона. То, что вам нужно сделать, - это использовать это для каждого метода, который должен обрабатывать javascript (например, Image Object, '

Смежные вопросы