12

Google ChromeのユーザースクリプトからクロスオリジンXHRを実行できた人はいますか?リクエストはサーバーに送られますが(ログで確認できます)、readystatechangedイベントが発生することはありません。

拡張機能のアクセス許可はうまくいかないようです。JSONPもそうではありません。

4

2 に答える 2

9

Chromeの現在のバージョン(13.0.781以降)は、クロスドメインリクエストを含むほとんどまたはすべてのGM_xmlhttpRequest()Doc機能をサポートするようになりました。問題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文字をコンソールに書き込みます。)

于 2011-09-17T06:31:32.207 に答える
5

Chrome 13以降、マニフェストにWebサイトへのアクセス許可を含めた場合、コンテンツスクリプトでクロスオリジンリクエストを実行できます。

Chromeのユーザースクリプトはコンテンツスクリプトです。コンテンツスクリプトはクロスオリジンXHRを作成できません。クロスオリジンXHRを実行する場合は、拡張ページ(バックグラウンド、ポップアップ、オプション)で実行する必要があります。

詳細: http : //code.google.com/chrome/extensions/content_scripts.html http://code.google.com/chrome/extensions/xhr.html

于 2009-12-24T08:19:31.900 に答える