1

순수한 자바 스크립트로 Chrome 확장 프로그램을 작성 중이며 해당 URL 소유자가 요청한 HTTP 요청에 대해 사용자 에이전트를 특정 형식을 사용해야합니다.Chrome 확장 프로그램에서 HTTP 요청을위한 사용자 에이전트 설정

다음 코드는 사용자 에이전트 수정 라인이 추가 될 때까지 작동합니다. 크롬 관리자 콘솔에서 오류 Refused to set unsafe header "User-Agent"을 제공합니다.

var xhr = new XMLHttpRequest(); 
xhr.open("GET", serviceURL, true, username, password); 
xhr.setRequestHeader('User-Agent', 'MyExtensionName/0.0.1'); 
xhr.onreadystatechange = function() { 
    // do some stuff 
} 
xhr.send(null); 

왜 이런 방식으로 사용자 에이전트를 수정할 수 있습니까?

답변

4

다른 헤더 유형과 함께 브라우저에서 해당 제목을 차단할 수 없습니다.

그러나 Chrome 확장 프로그램에서는 chrome.webRequest을 사용하여 헤더를 변경할 수 있습니다.

사용자 에이전트를 조정합니다. Match Patterns 가이드 라인에 따라 원하는 URL로 변경하십시오. 매니페스트에 webRequest 및 webRequestBlocking에 대한 권한을 추가해야합니다.

chrome.webRequest.onBeforeSendHeaders.addListener(function(details){ 
    for(var i=0; i < details.requestHeaders.length; ++i){ 
     if(details.requestHeaders[i].name === "User-Agent"){ 
      details.requestHeaders[i].value = "Desired User Agent Here"; 

      break; 
     } 
    } 
    return {requestHeaders: details.requestHeaders}; 
}, {urls: ["<all_urls>"]}, ["blocking", "requestHeaders"]); 
관련 문제