2016-06-18 3 views
0

사이트의 홈 페이지를 입력 할 때마다 쿠키가 모두 제거됩니다. 따라서 페이지 요청 매개 변수 (Chrome 개발자 도구 => 네트워크 => 요청 헤더 => 쿠키)에는 쿠키가 비어 있어야합니다.페이지로드 전에 쿠키 제거

그래서 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는 비동기입니다. 원하는 것은 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] .name을 === 'Cookie'' – user5858