2016-06-18 166 views
0

只要輸入網站的主頁,我想刪除它的所有cookie。因此,頁面請求參數(在Chrome開發工具中=>網絡=>請求標題=> Cookie)應該將Cookie清空。在頁面加載之前刪除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); 
          }); 
         } 
        } 
        ); 
       } 

事實上所有的餅乾被刪除,但我還是看到同樣的Cookie的網頁請求頭被髮送。我想在chrome.cookies.remove執行的時候已經發送了請求。

有沒有辦法避免發送cookie?

+0

@wOxxOm是的,我使用的是阻塞的WebRequest – user5858

回答

1

chrome.cookies api是異步的。你想要的是使用chrome.webRequest.onBeforeSendHeadersblockingrequestHeaders。然後,您要將空白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]。名稱===「Cookie'' – user5858

相關問題