ネイティブ オブジェクトのプロキシ/ラッパーとして機能するスクリプトを作成しようとしています。これにより、ネイティブXMLHttpRequest
オブジェクトをインターセプトし、responseText を変更して、元の onreadystatechange イベントに戻ることができます。
コンテキストは、アプリが受信しようとしているデータがローカル ストレージで既に利用可能な場合、中止しXMLHttpRequest
、ローカルに保存されたデータをアプリの成功/失敗コールバック メソッドに戻すことです。アプリの既存の AJAX コールバック メソッドを制御できないとします。
私はもともと次のアイデアを試していました..
var send = XMLHttpRequest.prototype.send;
XMLHttpRequest.prototype.send = function(data){
//Do some stuff in here to modify the responseText
send.call(this, data);
};
しかし、私が確立したように、responseText は読み取り専用です。
次に、一歩下がって、独自の完全なネイティブ プロキシをXMLHttpRequest
に記述し、最終的に独自のバージョンのネイティブ メソッドを記述してみました。ここで議論されていることに似ています...
http://www.ilinsky.com/articles/XMLHttpRequest/#implementation-wrapping
onReadyStateChange
しかし、それは急速に混乱を招き、変更されたデータを元のメソッドに戻すことは依然として困難です。
助言がありますか?これは可能ですか?