문제

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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top