Chrome의 사용자 스크립트에서 Cross-Origin XHR
-
20-09-2019 - |
문제
Chrome의 사용자 스크립트에서 Cross Origin XHR을 수행하는 운이있는 사람이 있습니까? 요청은 서버로 이동합니다 (로그에서 볼 수 있습니다). readystatechanged
이벤트는 해고되지 않습니다.
확장 권한은 트릭을 수행하지 않는 것 같습니다. JSONP도 아닙니다.
해결책
크롬의 현재 버전 (13.0.781 이상)은 이제 대부분 또는 전부를 지원합니다. GM_xmlhttpRequest()
문서 기능 - 크로스 도메인 요청 포함.
보다 문제 18857 : 컨텐츠 스크립트에서 크로스 사이트 XMLHTTPREQUEST 지원.
따라서이 스크립트는 이제 Chrome (및 Firefox)에서 완벽하게 잘 작동합니다.
// ==UserScript==
// @name _Cross domain (XSS) GM_xmlhttpRequest, Chrome too
// @include http://stackoverflow.com/*
// @grant GM_xmlhttpRequest
// ==/UserScript==
GM_xmlhttpRequest ( {
method: "GET",
url: "http://www.google.com/",
onload: function (response) {
console.log ( response.status,
response.responseText.substring (0, 80)
);
}
} );
(해당 스크립트를 설치 한 다음 SO 페이지를 찾아보십시오. 스크립트는 Google 홈페이지의 첫 80자를 콘솔에 기록합니다.)
다른 팁
Chrome 13 기준으로, 매니페스트에 웹 사이트에 허가를 포함하면 콘텐츠 스크립트에서 교차 원산지 요청을 수행 할 수 있습니다.
Chrome의 사용자 스크립트는 콘텐츠 스크립트입니다. 콘텐츠 스크립트는 크로스 오리 진 XHR을 만들 수 없습니다. 크로스 오리 진 XHR을하려면 확장 페이지 (배경, 팝업, 옵션)에서 수행해야합니다.
더 많은 정보를 위해서:http://code.google.com/chrome/extensions/content_scripts.html http://code.google.com/chrome/extensions/xhr.html