Fangen Sie XMLHttpRequest ab und ändern Sie responseText
Ich versuche, ein Skript zu erstellen, das als Proxy / Wrapper für den Muttersprachler fungiertXMLHttpRequest
Objekt, mit dem ich es abfangen, den responseText ändern und zum ursprünglichen onreadystatechange-Ereignis zurückkehren kann.
Der Kontext ist, wenn die Daten, die die App zu empfangen versucht, bereits im lokalen Speicher verfügbar sind, um den Vorgang abzubrechenXMLHttpRequest
und die lokal gespeicherten Daten an die Erfolgs- / Fehlschlag-Rückrufmethoden der Apps zurückgeben. Angenommen, ich habe keine Kontrolle über die vorhandenen AJAX-Callback-Methoden der Apps.
Ich hatte ursprünglich folgende Idee ausprobiert ..
var send = XMLHttpRequest.prototype.send;
XMLHttpRequest.prototype.send = function(data){
//Do some stuff in here to modify the responseText
send.call(this, data);
};
Aber wie ich jetzt festgestellt habe, ist der responseText schreibgeschützt.
Ich habe dann versucht, einen Schritt zurückzutreten und meinen eigenen vollständigen nativen Proxy an zu schreibenXMLHttpRequest
und letztendlich meine eigene Version der nativen Methoden schreiben. Ähnlich wie hier beschrieben ...
http://www.ilinsky.com/articles/XMLHttpRequest/#implementation-wrapping
Es wurde jedoch schnell verwirrend und es war immer noch schwierig, die geänderten Daten wieder in das Original zurückzusetzenonReadyStateChange
Methode.
Irgendwelche Vorschläge? Ist das überhaupt möglich?