問題タブ [same-origin-policy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - Firefox クロスドメイン リクエスト
firefox で実行されるスクリプトからクロス ドメイン リクエストを作成する必要があります (これは開発目的のためだけです)。
これは達成できますか?おそらくabout:config
キーを変更しますか?
ありがとう!
javascript - 同一生成元ポリシーを無効にする/WebKitWebViewsでクロスドメインXMLHttpRequestsを作成しますか?
自分の埋め込みWebViewでXMLHttpRequestsの同一生成元ポリシーを無効にしたいと思います。WebViewで読み込まれるページ/実行されるコードを制御できるので、同一生成元ポリシーを適用する必要はありません。クロスドメインリクエストを行いたいのですが。
WebPolicyDelegateとWebResourceLoadDelegateを実装しようとしましたが、XMLHttpRequestsに対して呼び出されていないようです。
jquery - 別のオリジンからリクエストに応じて外部スタイル シートをロードする
$.getJSON() または $.getScript() と同様に、さまざまなオリジンからのスタイルシートの動的読み込みを可能にするプラグインまたは機能が jQuery にありますか? 同じオリジンのスタイル シートを動的に統合できますが、別のオリジンの jQuery UI テーマをページに動的に挿入できる必要があります。CSS ファイルを JSON データとしてロードし、$().css(); を使用してコンテンツを適用できると思います。ただし、よりエレガントなソリューションを探していました。
ありがとう
jquery - Jquery.load同一生成元ポリシー
とにかく私はJquery.load同一生成元ポリシーをだますことができますか?私が来た最も近いものは、このチュートリアルです。
しかし、それはrssフィードのみを扱います。
javascript - JavaScript同一生成元ポリシー-異なるサブドメインにどのように適用されますか?
同一生成元ポリシーは、次の2つのドメインにどのように適用されますか?
コンテンツがserver2から取得された場合、server1でホストされているページでJSを実行できますか?
以下のダニエルの答えに従って編集<script>
してください。タグを使用して異なるサブドメイン間にスクリプトを含めることができますが、非同期リクエストについてはどうでしょうか。server2からserver1でホストされているページにスクリプトをダウンロードするとどうなりますか。スクリプトを使用して、server2上のサービスと非同期で通信できますか?
javascript - Javascript を使用したクロスドメイン テンプレート
私は現在、メディア ファイルの URL に基づいて埋め込み可能なメディアを簡単に作成し、Javascript メソッドとイベントを使用して制御できる Javascript ライブラリを構築しています (Flash / Silverlight JW プレーヤーのようなものを考えてください)。
もちろん、Javascript ライブラリからすべての html タグを単純に cat して、それをブラウザーに送信することもできます。
しかし、これは非常に醜いやり方であり、数週間後に見直したときに判読不能な管理不能なコードを作成する傾向があると思います。
そのため、テンプレート ソリューションが適しているようです。EJS は AJAX を使用してテンプレートをロードするため、 EJSを探していました。これにより、テンプレートを HTML ページで直接管理するのではなく、別のファイルで管理できます。
それには 1 つの「落とし穴」があります: 私のライブラリは完全にクロスドメインである必要があります: ライブラリ自体は foo.com に配置でき、提供サイトは bar.com に配置できます。そのため、bar.com がライブラリを使用してメディア プレーヤーを追加したい場合、foo.com にあるテンプレートに対して AJAX 呼び出しを行う必要がありますが、これはブラウザーの同一生成元ポリシーのために機能しません。
私の知る限り、この問題を回避するために JSONP のようなものを使用してテンプレートを読み書きするライブラリはありません。
誰でもこの問題の解決策を教えてもらえますか?
javascript - 親フレームが同じ起源であるかどうかを検出するJavaScript?
親フレームがフレームと同じオリジンであるかどうかを検出するクロスブラウザーの方法を探しています。できれば JavaScript エラー コンソールに警告を出力する必要はありません。
以下は機能しているようですが、コンソールにエラーを出力することは避けたいと思います (少なくとも Safari と Chrome は、親フレームの location.href にアクセスするときに実行します。Firefox はキャッチできる例外をスローします)。
jquery - 「Access-Control-Allow-Origin: *」ヘッダーが設定されている jQuery のホストされたバージョンはありますか?
私は最近 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 へのクロス ドメイン アクセスを許可しますが、今のところ自分でホストする必要があると思います。
gwt - Google Web Toolkit の遅延バインディングの問題
約 2 年前に GWT を使用して Web アプリを開発しました。それ以来、アプリケーションは進化してきました。現在の状態では、単一の XML ファイルを取得し、そこから情報を解析することに依存しています。全体として、これはうまく機能します。このアプリの要件は、ファイルシステム (file:///..) から実行できる必要があることと、Web サーバーから実行する従来のモデル ( http://.. .)から実行できる必要があることです。
このファイルを Web サーバーから取得すると、RequestBuilderオブジェクトを使用して期待どおりに動作します。ファイルシステム Firefox、Opera、Safari、および Chrome からアプリを実行すると、すべて期待どおりに動作します。IE7 または IE8 を使用してファイル システムからアプリを実行すると、RequestBuilder.send()の呼び出しが失敗し、エラーに関する情報は、同じオリジン ポリシーに違反しているため、ファイルへのアクセスに問題があることを示唆しています。アプリは IE6 では期待どおりに動作しましたが、IE7 または IE8 では動作しませんでした。
そこで、 RequestBuilder.javaのソース コードを調べたところ、実際の要求は XMLHttpRequest GWT オブジェクトで実行されていることがわかりました。そこで、 XMLHttpRequest.javaのソース コードを調べたところ、いくつかの情報が見つかりました。
コードは次のとおりです (XMLHttpRequest.java の 83 行目から始まります)。
したがって、基本的に XMLHttpRequest を作成できない場合 (IE6 では利用できないため)、代わりに ActiveXObject が使用されます。
XMLHttpRequest の IE 実装についてもう少し詳しく調べたところ、Web サーバー上のファイルとの対話のみがサポートされているようです。
IE8 で設定を見つけました ([ツール] -> [インターネット オプション] -> [詳細設定] -> [セキュリティ] -> [ネイティブ XMLHTTP サポートを有効にする])。このボックスのチェックを外すと、アプリが動作します。これは、IE に XmlHttpRequest の実装を使用しないように指示することが少ないためだと思います。GWT は、ネイティブの XmlHttpRequest が利用可能であるとは考えていないため、ActiveXObject を使用するだけです。
これで問題は解決しますが、長期的な解決にはなりません。
現在、失敗した送信リクエストをキャッチし、通常の GWT を使用してファイル システムから XML ファイルをフェッチしようとしていたことを確認できます。この場合にやりたいことは、IE7 と IE8 のケースをキャッチして、ネイティブの XmlHttpRequest オブジェクトの代わりに ActiveXObject を使用させることです。
この問題の解決策と思われる GWT の Google グループに投稿がありました (リンク)。これを見ると、古いバージョンの GWT 用に作成されたものであることがわかります。私は最新のリリースを使用しており、これが多かれ少なかれやりたいことだと思います ( GWT 遅延バインディングを使用して特定のブラウザーの種類を検出し、組み込みの GWT 実装の代わりに XMLHttpRequest.java の独自の実装を実行します)。
これが私が使用しようとしているコードです
モジュールxmlに追加した行は次のとおりです
私が言えることから、これは機能するはずですが、私のコードは実行されません。
私が間違っていることを誰かが知っていますか?
遅延バインディングを介してこれを行うのではなく、代わりに失敗した場合にネイティブの JavaScript を使用する必要がありますか?
私が言及していないこの問題に取り組む別の方法はありますか?
すべての返信を歓迎します。
javascript - 同じオリジン ポリシーにもかかわらず、Flash/Javascript のアップロード
スクリプトの元のドメイン以外のドメインにファイルをアップロードできますか?
たとえば、 でファイルをホストしていてwww.example.com
、 にファイルをアップロードしたいとしますuploads.example.com
。次のスクリプトは同じオリジン ポリシーに違反します ( uploadifyを使用):
これがブラウザで問題になるかどうかを一方向または他方向に示す、同じオリジン ポリシーに関する明確な参照は見たことがありません。