2016-06-18 10 views
0

サイトのホームページが入力されるたびに、すべてのCookieが削除されます。したがって、ページリクエストパラメータ(Chromeの開発ツールでは=>ネットワーク=>リクエストヘッダ=>クッキー)はCookieを空にする必要があります。ページの読み込み前にクッキーを削除する

のでを遮断を使用してchrome.webRequest.onBeforeRequest.addListener内のコードは次のようになります。

if (["https://www.irctc.co.in/eticketing/loginHome.jsf", "https://www.irctc.co.in"].indexOf(details.url) > -1) 
       {     
        chrome.cookies.getAll({domain: "irctc.co.in"}, function (cookies) { 
         for (var i = 0; i < cookies.length; i++) { 

          chrome.cookies.remove({url: "https://" + cookies[i].domain + cookies[i].path, name: cookies[i].name}, function (res) { 
           console.log("res=", res); 
          }); 
         } 
        } 
        ); 
       } 

確かにすべてのクッキーを削除されているが、私はまだページリクエストヘッダで送信されている同じクッキーを参照してください。私は時間がすでにchrome.cookies.removeが実行されていると思うが、すでに送信されている。

クッキーの送信を避ける方法はありますか?

+0

@wOxxOmはい私が使用しているブロックWebRequestクラス – user5858

答えて

1

chrome.cookies apiは非同期です。あなたが欲しいのはとblockingrequestHeadersの両方を使うことです。次に、cookieヘッダーを空白にします。それは次のようになります:

chrome.webRequest.onBeforeSendHeaders.addListener(function(details){ 
    for (var i = 0; i < details.requestHeaders.length; ++i) { 
    if(details.requestHeaders[i].name === 'Cookie') { 
     details.requestHeaders[i].value = ''; 
     break; 
    } 
    } 
    return {requestHeaders: details.requestHeaders}; 
}, 
{urls: ["https://www.irctc.co.in/eticketing/loginHome.jsf", "https://www.irctc.co.in/*"]}, 
["blocking", "requestHeaders"]); 
+0

Cが大文字である: 'details.requestHeaders [I] .nameの===「Cookie'' – user5858

関連する問題