Przechwytuj XMLHttpRequest i zmodyfikuj responseText
Próbuję zbudować skrypt, który będzie działał jako proxy / wrapper dla rodzimegoXMLHttpRequest
obiekt pozwalający mi go przechwycić, zmodyfikować tekst odpowiedzi i powrócić do oryginalnego zdarzenia onreadystatechange.
Kontekstem jest, jeśli dane, które aplikacja próbuje odebrać, są już dostępne w lokalnej pamięci masowej, aby przerwaćXMLHttpRequest
i przekazuj lokalnie przechowywane dane z powrotem do metod wywołania zwrotnego aplikacji / niepowodzeń. Załóżmy, że nie mam kontroli nad istniejącymi aplikacjami AJAX.
Początkowo wypróbowałem następujący pomysł ...
var send = XMLHttpRequest.prototype.send;
XMLHttpRequest.prototype.send = function(data){
//Do some stuff in here to modify the responseText
send.call(this, data);
};
Ale jak już ustaliłem, tekst odpowiedzi jest tylko do odczytu.
Następnie spróbowałem cofnąć się o krok, pisząc mój własny, pełny rodzimy proxyXMLHttpRequest
, ostatecznie kończąc pisanie własnej wersji rodzimych metod. Podobnie do tego, o czym tutaj mowa ...
http://www.ilinsky.com/articles/XMLHttpRequest/#implementation-wrapping
Ale szybko stało się mylące i nadal ma trudności z przywróceniem zmodyfikowanych danych z powrotem do oryginałuonReadyStateChange
metoda.
Jakieś sugestie? Czy to możliwe?