問題タブ [cors]

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.

0 投票する
6 に答える
112899 参照

jquery - http ページで https を使用する Ajax

私のサイトでは http および https プロトコルを使用しています。内容には影響しません。私のサイトでは jQuery ajax 呼び出しを使用しており、ページの一部の領域も埋めています。

ここで、すべての ajax 呼び出しを https 経由で行いたいと考えています。(理由を聞かないでください :)) https プロトコルを使用するページにいるとき、ajax リクエストが機能しています。http プロトコルを使用するページを表示すると、javascript エラーが発生します: 制限付き URI へのアクセスが拒否されました

私はこれがクロスドメインの問題であることを知っており (実際にはクロスプロトコルの問題です)、現在のページと同じプロトコルを ajax 呼び出しで使用する必要があることも知っています。

それでも、すべての ajax 呼び出しを https にして、http 経由で提供されたページで呼び出す必要があります。これを達成するための回避策はありますか (json/proxy ソリューションですか?)、それとも単純に不可能ですか?

0 投票する
6 に答える
5859 参照

javascript - Cross-Origin Resource Sharing (CORS) - 何か足りないものはありますか?

CORSについて読んでいましたが、実装はシンプルで効果的だと思います。

しかし、私が何かを見逃していない限り、仕様には大きな部分が欠けていると思います. 私が理解しているように、そのリソースへのアクセスを許可するかどうかを、リクエストの発信元 (およびオプションで資格情報を含む) に基づいて決定するのは外部サイトです。これで問題ありません。

しかし、ページ上の悪意のあるコードが、ユーザーの機密情報を外国のサイトに POST しようとしている場合はどうなるでしょうか? 外部サイトは明らかにリクエストを認証しようとしています。したがって、何かを見逃していなければ、実際には CORS を使用すると機密情報を簡単に盗むことができます。

元のサイトが、そのページがアクセスを許可されているサーバーの不変リストも提供できれば、はるかに理にかなっていると思います。

したがって、展開されたシーケンスは次のようになります。

  1. 受け入れ可能な CORS サーバー (abc.com、xyz.com など) のリストを含むページを提供します。
  2. ページが abc.com に XHR リクエストを送信しようとしています - 許可リストにあり、認証が通常どおり行われるため、ブラウザーはこれを許可します
  3. Page は Malicious.com に XHR リクエストを送信しようとしています - サーバーがリストにないため、リクエストはローカルで (つまり、ブラウザーによって) 拒否されました。

悪意のあるコードが依然として JSONP を使用して不正な作業を行う可能性があることはわかっていますが、CORS の完全な実装は、スクリプト タグのマルチサイトの抜け穴を塞ぐことを暗示していると考えていたでしょう。

公式の CORS 仕様 ( http://www.w3.org/TR/cors ) も調べましたが、この問題についての言及は見つかりませんでした。

0 投票する
7 に答える
28761 参照

ruby-on-rails - レールの下でwebrickにaccess-control-allow-originを設定するには?

別のドメインから動作するxmlhttprequestsを介して別のサイトにコンテンツを提供する小さなレールアプリを作成しました(同じサーバーで実行することはできません)。要求元の Web ページがこの資料にアクセスできるようにするには、Rails サーバーで access-control-allow-origin を設定する必要があることを理解しています。

Apache でこれを行う方法についてはかなり詳しく文書化されているようで、これはおそらく、サイトをデプロイした後に使用するサーバーです。私が開発している間は、Rails で慣れているように webrick を使用したいと思っています。レール内で適切な http ヘッダーを提供するように webrick を構成する方法はありますか?

0 投票する
2 に答える
7297 参照

xmlhttprequest - CORSがPOSTで機能しないように見えるのはなぜですか?

Mozilla自身の仕様では、単純であるGETか、POSTプリフライトなしでネイティブにCORSである必要がありますが、これまでのところ、POST私が行ったすべての試みの結果、OPTIONSヘッダーが消えてしまいました。コードを取得するために変更するとPOST、すぐに適切なGETリクエストが送信されるため、クロスサイト部分は正常に機能します。

これが私がFirefoxでやっていることのスリム化されたサンプルです:

これが私がすでにchromeとIEで働いていたものです:

0 投票する
1 に答える
20973 参照

javascript - Access-Control-Request-Header: - x-requested-with

ユーザー向けのウィジェットを作成して動作させようとしていますが、このヘッダーで X-Domain の問題が発生し続けています。httpfox は私に - NS_ERROR_DOM_BAD_URI - を与え、さらに調査すると、

ロードされない理由はわかりませんが、基本的にスクリプトを呼び出してから、いくつかの html を取得してロードしようとしていますが、上記のヘッダーでブロックされます。

この問題を回避するにはどうすればよいですか?

0 投票する
3 に答える
5205 参照

ruby-on-rails - Rails、REST アーキテクチャ、および HTML 5: プリフライト リクエストを使用したクロス ドメイン リクエスト

私たちのサイトを HTML 5 フレンドリーにするプロジェクトに取り組んでいる間、クロス ドメイン リクエストの新しい方法を採用したいと考えていました (非表示の iframe を介して投稿する必要はもうありません!!!)。Access Control仕様を使用して、さまざまなブラウザーの動作を検証するためのいくつかのテストのセットアップを開始します。

現在の Rails RESTful アーキテクチャは、GET、POST、PUT、DELETE の 4 つの HTTP 動詞に依存しています。ただし、Access Control 仕様では、単純でないメソッド (PUT、DELETE) には HTTP 動詞 OPTIONS を使用したプリフライト リクエストが必要であると規定されています。さらに、テスト中に、Firefox 3.5.8 がプリフライト POST リクエストも同様に行うことを発見しました。

私の質問はこれです。Railsフレームワークが問題に対処するためのプロジェクトを知っている人はいますか? そうでない場合、すべての POST、PUT、DELETE メソッドのルートをサポートする必要があるため、OPTIONS メソッドをサポートするための最良の戦略について何か意見はありますか?

0 投票する
8 に答える
104823 参照

javascript - CORSがChromeで機能しない

サーバー(CrossOriginFilterを使用するJetty)でクロスオリジンリソースシェアリングを設定しましたが、IE8とFirefoxで完全に機能します。Chromeでは、それは...そうではありません。

エラー関数が呼び出され、役立つメッセージ「error」が表示されます。リクエストを行っているようですが、期待するヘッダーがありません。URLが同じオリジンからのものである場合、それは正常に機能します。

0 投票する
4 に答える
4036 参照

javascript - 401 時の Firefox jQuery ajax での CORS の問題のテストにご協力ください

これは私を夢中にさせています。

jQuery 1.4.2、Windows XP SP3

これが私のテストです。

Firefox 3.5+ を読み込む

http://plungjan.name/test/testcors.html

作品

ファイルをハードディスクに保存し、そこから実行します

私のオフィスからは、外部は機能し、内部は機能しません

また興味深いのは、一度に両方を実行できないことです。

背景: CORSを使用する内部 Web サービスにGETを実行します。こちらこちらで詳しく説明されているように、v3.5 以降では FF がクロス ドメイン リクエストを処理しないという回答を投稿しないでください。

IE8 および FF3.6.6 では、1 つのサーバーから別のサーバーへ、そして現在はほぼファイル システム (file:///) からサービスへと動作します。 ファイル システムからのみ、FF 3.6.6 がネゴシエートする必要がある場合 (ユーザーは既にログインし、承認されており、資格情報を送信しています!)ネゴシエーション後にデータを取得できません。jQuery xhrはステータス0を返し、data/responseTextなどはありません私には思えますが、jQueryは反応し、200からではなく401からxhrを保存しますOK後で

XHR オブジェクトにアラートを送信したときに、通信の最後に得られる結果は次のとおりです。

同じサーバーに呼び出しを行うが資格情報を必要としない場合、データはクロスドメインで問題なく返されます

したがって、通信は次のようになります。

リターンは

その後、FF が送信されます

必要なファイルが与えられますが、FF で取得できません:

サーバーから送信されたデータがXHR オブジェクトにありません

これが私のコードです

0 投票する
4 に答える
13573 参照

javascript - PrototypeJSとのクロスオリジンリソースシェアリング

クロスオリジンリソースシェアリングとプロトタイプで問題が発生しています。外国のリソースへの簡単なPOSTリクエストがあります。簡単なPOSTリクエストには、満たす必要のあるいくつかのルールがあります。

Content-Typeはapplication/x-www-form-urlencoded、multipart / form-data、またはtext / plainである必要があり、単純なリクエストはhttpリクエストでカスタムヘッダーを設定せず、サーバーはAccess-を設定する必要があります。 Control-Allow-Originヘッダーが正しい。

バニラJavaScriptXMLHttpRequestを使用すると、すべてが正常に機能しますが、PrototypeJSを使用すると、Prototypeがいくつかのカスタムヘッダーを設定し、それを防ぐ方法がわからないため、機能しません。

私はプロトタイプでそれを試しました:

Prototypeにそのような単純なCORSリクエストを送信させる方法はありますか?


プレーンなJavaScriptXMLHttpRequestによって作成されたヘッダーのダンプがあります:

およびプロトタイプリクエストによって作成されたヘッダー:

プロトタイプはまったく異なるヘッダーセットを使用しています...これにより、コンソールで次のエラーが発生します。

XMLHttpRequestはforeign-host.com/bthesis/returnJSON.phpをロードできません。リクエストヘッダーフィールドX-Prototype-Versionは、Access-Control-Allow-Headersでは許可されていません。安全でないヘッダー「X-JSON」の取得を拒否しました

奇妙なことに、Webサーバーはどちらの場合も要求されたリソースを返します(Chromeの開発者コンソールの「リソース」ビューに表示されます)が、プロトタイプが何らかの形でそれにアクセスできないことを示しています