問題タブ [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 - Javascriptで同一生成元例外をキャッチしますか?
これが内部でどのように機能するかを学ぶために、独自のXMLHttpRequestフレームワークを作成しようとしています。私を困惑させるのは、「同一生成元」の例外をキャッチする方法が見つからないことです。
この背後にある考え方は、URLを読み込もうとすることです。同一生成元例外が発生した場合、スクリプトのローカルプロキシスクリプトを介してURLを再要求します。これを行う理由は、開発サンドボックスから本番データにアクセスする必要があり、スクリプト自体に対して可能な限り透過的にする必要があるためです。
私はそれが悪い習慣であることを知っていますが、これは現時点でこれを行うための最も邪魔にならない方法です:)
ただ物事をクリアするために-私は同じ起源をバイパスしたくありません、私はそれについて何かをすることができるようにスローされた例外をキャッチしたいだけです。
xhrに現在使用しているコードは次のとおりです。
私は試してみました...xhr.send();をキャッチします。しかし、役に立たず、それでも例外をキャッチすることはできません。
任意のアイデアやポインタをいただければ幸いです。
javascript - ajax を使用してページにアクセスしようとすると、Access-Control-Allow-Origin エラーが発生するのはなぜですか?
どこでも実行できるようにしたいスクリプトから ajax を使用して、自分の Web サイトのデータにアクセスしようとしています。私のスクリプトのajaxコードは次のようになります
しかし、実行するとエラーが発生します
XMLHttpRequest はhttp://mywebsite.com/page?i=2&jsonを読み込めません 。オリジンhttp://anotherwebsite.comは Access-Control-Allow-Origin で許可されていません。
私のウェブサイトのスクリプトでは、ページ内に次の行があります。
しかし、私はまだ同じエラーが発生します。私のスクリプトはどの Web サイトでも使用できる拡張機能であるため、Web サイトのそのページに ajax を介してインターネット上の他のページからアクセスできるようにしたいと考えています。
編集: ajax オブジェクトの 'withCredentials' 属性を true に設定し、サーバーで Access-Control-Allow-Credentials ヘッダーを true に設定して送り返すと、これが機能します。次に、スクリプトでドメインも渡したので、サーバー スクリプトの Access-Control-Allow-Origin で返されます。ワイルドカード * は機能しませんでした。これは、これまでのところ Chrome でのみテストされています。
google-chrome - サーバーを使用していないため、Chrome でオリジン ポリシーにアクセスするにはどうすればよいですか
Chrome のオリジン ポリシーを変更したいのですが、アクセスして変更するにはどうすればよいですか?
どうもありがとう
php - AJAX Same-Origin ポリシーのバイパス - 特定のケース
Ajax/JQuery を使用してページ コンテンツを動的に更新しようとしているときに、SOP の問題と制限について学びましたが、小さな問題を解決する方法があるかどうか疑問に思っていました。
わかりやすくするために、最初にワークフローを説明します。
HTML メールである電子メールで Web ページを受信します。Web ページには HTML フォームが含まれており、フォームが完成すると、適切な Web サーバー (php) に送信されてデータが保存されます。
私は主に Outlook 2007 を電子メール クライアントとして使用しています (ここでは何も言わないでください!!!) が、いくつかのセキュリティ制限のために、電子メールを「開く」ときに IFRAME が無効になっています。ページ コンテンツ全体をコピーし、スタンドアロンの Web ページとしてファイル システムに保存し、ブラウザ (Firefox) にロードする VBA スクリプトを使用して、この問題を回避しました。
ページがブラウザーに読み込まれると、アドレス バーに次のようなローカル/ファイル システムの URL が表示されます。
ここまでは問題ありません。問題なく動作します。今問題:
Ajax を使用してページのコンテンツを動的に更新したかったjQuery.load
のですが、ここで SOP の出番です。Web ページを動的に更新するために読み込まれる PHP ページは、別のドメインで実行されているように見え、ブロックされます。
これを回避する方法を考えました。
javascript - JSONのJavaScript同一生成元ポリシーを回避するにはどうすればよいですか...そしてそれはXMLデータでも機能しますか?
同一生成元ポリシーについて質問があります...
JSONおよびXMLデータを使用するJavaScriptコードがあります。サーバーが別のドメインにあるため、JSONをJSONPに変更する必要があることはわかっていますが、それはクライアント側でのみ行いますか?そして、XMLデータはどうですか?それもどういうわけかクロスドメインでロードできますか?
最後に、例を挙げて、これを詳細に説明している優れたWebサイトはありますか?
safari - Safari で同一生成元ポリシーを無効にする
開発目的で、マシンの Safari (Windows 上) で同一生成元ポリシーを無効にする必要があります。
Chrome では、フラグを付けて起動することでこれを行うことができます--disable-web-security
。Safari に同等のフラグまたは非表示の設定はありますか?
html - HTML5 Canvas getImageData と同一生成元ポリシー
私は pixie.strd6.com でサイトを運営しており、画像は images.pixie.strd6.com の CNAME で Amazon S3 を介してホストされています。
これらの画像を HTML5 キャンバスに描画して getImageData メソッドを呼び出せるようにしたいのですが、スローされますError: SECURITY_ERR: DOM Exception 18
を設定してみwindow.domain = "pixie.strd6.com"
ましたが、効果がありません。
さらに、$.get("http://dev.pixie.strd6.com/sprites/8516/thumb.png?1293830982", function(data) {console.log(data)})
エラーもスローします。XMLHttpRequest cannot load http://dev.pixie.strd6.com/sprites/8516/thumb.png?1293830982. Origin http://pixie.strd6.com is not allowed by Access-Control-Allow-Origin.
理想的には、HTML5 キャンバスはサブドメインからの呼び出しをブロックしませんgetImageData
。S3 で Access-Control-Allow-Origin ヘッダーを設定することを検討しましたが、成功していません。
どんな助けや回避策も大歓迎です。
javascript - 同一生成元ポリシー、Javascript / jQuery AJAX、およびRSSXMLフィードの取得
jQueryを使用して外部ドメインにあるRSSフィードを取得する際に問題が発生しました。Safariで動作していましたが、同一生成元ポリシーの制限($ .ajax()関数についても文書化されています)が原因で他のブラウザーでエラーが発生しました。
どうやって修正したのか知りたいですか?
javascript - ローカルファイルシステムでChromeAccess-control-allow-originを回避しますか?
SOで他の同一生成元ポリシーのトピックを読みましたが、ローカルファイルシステムに関連するソリューションは見ていません。
ローカルで提供する必要のあるWebアプリ(大まかな意味で)があります。ユーザーがページを読み込んだ後、ウェブページで何をしているかに応じて、大量のデータを読み込もうとしています。Firefox 3.5およびIE8では、jQueryのAJAX()およびGetScript()メソッドを使用してこれを行うことができますが、Chromeでは、同一生成元ポリシーのためにこれは失敗します。
XMLHttpRequest
ロードできませんfile://test/testdir/test.js
。オリジンnull
は許可されていませんby Access-Control-Allow-Origin
。
これは私が次のような単純なことをしたときに起こります
これはIEとFirefoxで完全に機能します。
これについてたくさん読んだ後、私はドキュメントの先頭に直接書いてみることにしました。Chromeのコンソールで、次のように入力しました。
これは、コンソールに貼り付けると正常に機能し<script...test.js</script>
ます。要素がヘッドに追加され、評価され、コンテンツがDOMに読み込まれます。
このコードを関数呼び出しに入れるまで、これは成功したと思いました。同じ正確なコードを関数から呼び出すと、要素がに追加されますが、JavaScriptファイルは評価されません。理由がわかりません。Chromeのコンソールを使用して、要素を追加しているメソッドで実行を停止し、上記のコードを実行すると、Chromeはそれを評価しません。ただし、実行の一時停止を解除してまったく同じコードを実行すると(コンソールウィンドウに貼り付ける)、機能します。私はこれを説明するのに途方に暮れています。誰かがこれに以前に対処したことがありますか?
私は次のSOの投稿を読みましたが、私が抱えている問題については説明していません。
同一生成元ポリシーを回避する方法
XMLHttpRequestOriginnullは許可されていませんAccess-Control-Allow-Originforfile:/// to file:///(サーバーレス)
クロスサイトXMLHttpRequest
繰り返しになりますが、私の最後の手段は、ウェブページの読み込み時にすべてのデータを読み込むことです。これにより、アプリのユーザーの90%にとって不要な、ウェブページの読み込みに最大10秒の遅延が発生する可能性があります。
提案/代替案をありがとう!!!
jquery - 「アクセスが拒否されました。」JQuery .ajaxForm()を使用したIE8でのエラー
みなさん、こんにちは。
私はAJAXの初心者ですが、JQuery1.4.4とjquery.form.jsAJAXプラグインを使用した同一生成元ポリシーの保護に問題があります。
訪問者がURLの前に「www」を入力する限り正常に機能するAJAX連絡フォームがあります。しかし、(wwwを使用せずに)私のサイトに移動した場合でも、URLは正常に解決されますが、URLはAJAXフォームで使用しているものと一致しません。Chromeでは、これによりコンソールエラーが発生します。
「XMLHttpRequestはhttp://www.example.com/をロードできません。Originhttp://example.comはAccess-Control-Allow-Originで許可されていません。」
そしてIE8では「アクセスが拒否されました」と表示されます。したがって、URLは「www」の有無にかかわらず問題なく解決されますが、訪問者が「www」で始まると、私のAJAXフォームは機能しません。AJAXフォームコードを変更してhttp://example.com( "www"なし)に投稿すると、訪問者がwww.example.comに移動しても機能しません。コードにどちらの条件も処理させる方法が思いつかない。これは、JQueryを使用しているかどうかに関係なく、ほぼすべての人がAJAXを使用している人に遭遇する問題である必要があります。だから私は明らかな何かを見逃しているに違いありません。誰かがこれについて私に教えてもらえますか?私のテストコードは以下の通りです。
ありがとう、
ノースク