2014-11-16 3 views
0

현재 사용자가 프록시를 설정할 수있는 크롬 확장 프로그램을 개발 중입니다. 그러나 프록시를로드하지 못한 경우 내 컴퓨터에서 net::ERR_PROXY_CONNECTION_FAILED이라는 크롬이 반환되고 'Unable 프록시 서버에 연결하는 방법 "을 참조하십시오. 나는이 연결 실패를 감지하여 다른 프록시 또는 프록시없이 일반 IP로 연결을 복원 할 수있는 방법을 찾고있었습니다. 이상한 문제는 내 확장 코드가이 페이지에서 실행되지 않는다는 것입니다.크롬 확장 감지 ERR_PROXY_CONNECTION_FAILED

오류 페이지를 특별하게 만드는 매니페스트 파일의 "content_scripts"에 특정 "일치"가 누락 되었습니까? (오류 페이지의 URL이 내가 방문하려고하는 페이지의 URL이고 작동중인 프록시/연결이있는 경우 확장 코드가 실행 되더라도)

이 오류를 catch 할 수있는 방법이 있습니까? 어떤 생각이라도 대단히 감사하겠습니다. 미리 감사드립니다!

프록시를 설정하는 방법은 다음과 같습니다. 그러나이 코드가 작동하는 것을 상기 시키는데 사용할 수없는 프록시 서버에 연결하려고하면 브라우저가 종료되고 내 확장 코드가 더 이상 실행되지 않습니다. 페이지와. (이것은 프록시가 실패한다 때까지로 실행)

"content_scripts": [ { 
"js": [ "jquery-1.11.1.min.js", "myscript.js" ], 
"matches": ["https://*/*","http://*/*","http://*/"], 
"run_at": "document_end" 
}, 

그리고 오류 페이지 크롬 반환의 사진 프록시에 도달 할 수없는 :

var config = { 
     mode: "fixed_servers", 
     rules: { 
      singleProxy: { 
       scheme: "http", 
       host: request.ip 
      } 
     } 
    }; 
    chrome.proxy.settings.set({ 
     value: config, 
     scope: 'regular' 
    }, function() {}); 

내 매니페스트 코드 enter image description here

+0

일부 코드를 표시하고 사용중인 프록시 백엔드를 언급해야합니다. 현재의 질문에 세부 사항이 부족하기 때문에 무엇이 잘못되었는지를 밝히기가 어렵습니다. –

+0

좋아, 코드를 몇 개 추가하겠다.하지만 내 질문은 내가하는 일이 내가 잘못한 것이 아니라 어떻게 할 수 있는지에 관한 것이다. – Osman

답변

1

여러 프록시를 지원하려면 PAC script을 사용하고 다음 예와 같이 대체를 지정하십시오 (proxy1:80에 연결하지 않으면 proxy2:8080에 연결 시도가 실패한 경우) Chrome은 "DIRECT"으로 인해 직접 연결을 시도합니다.

var config = { 
    mode: 'pac_script', 
    pacScript: { 
     data: 'function FindProxyForURL(url, host) {\n' + 
       ' if (url.substring(0, 5) == "http:")\n' + 
       '  return "PROXY proxy1:80; PROXY proxy2:8080; DIRECT";\n' + 
       ' return "DIRECT";\n' + 
       '}' 
    } 
}; 
chrome.proxy.settings.set({ 
    value: config, 
    scope: 'regular' 
}, function() { 
});