私は最近 jQuery を使用していて、XmlHttpRequest が同じオリジン ポリシーを使用しているため、ユーザー スクリプトに含めることができないという問題に遭遇しました。さらにテストを行った結果、ほとんどのブラウザーは、同じオリジン ポリシーの問題の回避策として、W3C によって定義されたクロス オリジン リソース共有アクセス制御もサポートしていることがわかりました。httpヘッダーを含むローカルWebサーバーでjQueryスクリプトをホストすることでこれをテストしました。これによりAccess-Control-Allow-Origin: *
、XmlHttpRequestを使用してスクリプトをダウンロードできるようになり、ユーザースクリプトに含めることができました。スクリプトをリリースするときに jQuery のホストされたバージョンを使用したいのですが、これまでのところhttp://www.seoconsultants.com/tools/headersのようなツールでテストしていますjQuery スクリプトへのクロスオリジン アクセスを許可するサイトは見つかりませんでした。これまでにテストしたリストは次のとおりです。
- http://www.asp.net/ajaxlibrary/CDN.ashx
- http://code.google.com/apis/ajaxlibs/documentation/index.html#jquery
- http://docs.jquery.com/Downloading_jQuery#CDN_Hosted_jQuery
クロス オリジン アクセスを許可するホストされている jQuery のバージョンは他にありますか? jQuery は通常、スクリプト タグ (動的に作成されたスクリプト タグの場合もある) を介して読み込まれることはわかっていますが、この特定のケースでは、XmlHttpRequest と Eval を使用して、正しいスコープに読み込まれるようにする必要があります。Google Chrome はユーザー スクリプトをサポートしていますが、@require はサポートしていません。つまり、 Google Chrome のユーザー スクリプトで jqueryを使用する唯一の方法は、 jquery を.user.js ファイルに埋め込むか、XmlHttpRequest を介して読み込んで評価することです。埋め込みは最適なソリューションとは言えません。Chrome 拡張機能を使用すると拡張機能に jQuery js ファイルを含めることができますが、ユーザー スクリプトの方がはるかにシンプルで、複数のブラウザーで動作できるため、ユーザー スクリプトを使用することをお勧めします。私はすでに両方のチケットを提出しましたGoogle Ajax APIとjQueryチームは、CDN へのクロス ドメイン アクセスを許可しますが、今のところ自分でホストする必要があると思います。