2010-09-26 21 views
7

¿Cómo puedo ver la última solicitud HTTP GET en JavaScript? Básicamente lo que busco es lo que puedo ver en mi consola firebug. Cuando XMLHttpRequests están mostrando en la consola veo una línea que se ve algo como:Cómo ver la última solicitud GET HTTP en JavaScript

GET http://www.domain.com/php/file.php?q0&c=1 200 OK 163ms 

¿Cómo puedo ver esa URL en JavaScript?

EDIT: Para que quede claro, estoy buscando la URL entre GET ... y ... 200. No me importa nada más. No quiero ninguna otra información.

Respuesta

-1

Terminé yendo con una solución usando $_SERVER['REQUEST_URI'] en PHP y luego pasándola a JavaScript.

9

Es posible que desee modificar XMLHttpRequest.prototype.open a decorate con su código de "seguimiento". Algo como esto:

var ajaxCalls = []; 

XMLHttpRequest.prototype._originalOpen = XMLHttpRequest.prototype.open; 

XMLHttpRequest.prototype.open = function(method, url, async, user, password) { 
    ajaxCalls.push(url); 
    this._originalOpen(method, url, async, user, password); 
} 

La matriz ajaxCalls obtendrá poblada de las URL de sus peticiones Ajax. La última solicitud será al ajaxCalls[ajaxCalls.length - 1].

Tenga en cuenta que si desea rastrear solo las solicitudes GET, simplemente puede registrar las URL solo si method === 'GET' en el método open().

+0

Gracias, terminé yendo con una solución de mala calidad utilizando $ _SERVER [ 'REQUEST_URI'] en PHP y luego pasarla a JS. – themerlinproject

+0

wow, esto es brillante, ¡salud! – neaumusic

0

La solución de Daniel funciona, pero no para IE8 e inferior, ya que IE tiene diferentes argumentos.

Prueba este lugar:

window.XMLHttpRequest.prototype._original_open = window.XMLHttpRequest.prototype.open; 
window.XMLHttpRequest.prototype.open = function() { 
    ajaxCalls.push(arguments[1]); 
    this._original_open.apply(this,arguments); 
}; 
Cuestiones relacionadas