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?

questionAnswers(3)

yourAnswerToTheQuestion