2

私は、アクティビティを非表示にする Facebook の拡張機能に取り組んでいます (たとえば、20 分前に最後にアクティブだったなど)。したがって、フォームのリクエストをリダイレクトしようとしています

https://0-p-06-ash2.channel.facebook.com/pull?idle=2&state=active& …</p>

フォームのリクエストに

https://0-p-06-ash2.channel.facebook.com/pull?idle=50000& …</p>

webRequest API、onBeforeRequest を使用します。ここで、自分で作成したローカル テスト ページでリダイレクト手法を試してみると、ajax リクエストを送信し、その後プラグインを使用してリダイレクトすると、完全に機能します。ネットワーク インスペクターは、最初のリクエストが保留中であることを示し、その後、新しいリクエストが追加されます。ajax 呼び出しが受け取るデータは正しいです。つまり、2 番目のリクエストが返すデータです。

ただし、プラグインが Facebook で実行されると、最初のリクエストは保留中として表示されず、代わりにキャンセルされ、2 番目のリクエストはまったく送信されません。

これは私が使用するコードです(おおよそ):

var callback = function(details){

    var ajaxURL = details.url;

    if(ajaxURL.indexOf('pull?channel') > -1){ // find activity log request

        var newURL = ajaxURL.replace('&state=active', '').replace(/idle\=[0-9]{0,}/gi, 'idle=50000');

        return {redirectUrl: newURL};

    }

    return {cancel: false};

}

filter = {urls: ["<all_urls>"]};

chrome.webRequest.onBeforeRequest.addListener(callback, filter, ["blocking"]);

リクエストが実際に送信される前に Facebook がリダイレクトを検出する方法を見つけたように見えますが、この質問 on Stackoverflowによると、それは不可能であると考えられています。

では、彼らはどのようにそれを行い、どうすればそれを回避できますか? 前もって感謝します。

4

0 に答える 0