2010-09-26 4 views
7

Come posso visualizzare l'ultima richiesta HTTP GET in JavaScript? Fondamentalmente quello che sto cercando è quello che posso vedere la mia console firebug. Quando XMLHttpRequests stanno mostrando in consolle vedo una linea che sembra qualcosa di simile:Come visualizzare l'ultima richiesta HTTP GET in JavaScript

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

Come faccio a visualizzare l'URL in JavaScript?

EDIT: Giusto per essere chiari sto cercando l'URL tra il GET ... e ... 200. Non mi importa di nient'altro. Non voglio nessuna delle altre informazioni.

risposta

-1

ho finito per andare con una soluzione utilizzando $_SERVER['REQUEST_URI'] in PHP e poi passarlo a JavaScript.

9

È possibile modificare lo XMLHttpRequest.prototype.open in decorate con il codice di "tracciamento". Qualcosa di simile a questo:

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); 
} 

Il ajaxCalls gamma sarà ottenere popolato con gli URL delle richieste Ajax. L'ultima richiesta sarà ajaxCalls[ajaxCalls.length - 1].

Si noti che se si desidera tenere traccia solo delle richieste GET, è sufficiente registrare gli URL solo se method === 'GET' nel metodo open().

+0

Grazie, ho finito per andare con una soluzione scadente utilizzando $ _SERVER [ 'REQUEST_URI'] in PHP e poi passarlo a JS. – themerlinproject

+0

wow, questo è geniale, evviva – neaumusic

0

soluzione di Daniel funziona, ma non per IE8 e inferiore, come IE ha diverso numero di argomenti.

Prova questo, invece:

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