5

私は Amazon S3 経由で静的なウェブサイトをホストしており、別のドメインを呼び出して XML、JSON、またはそれが取得したものを解析する Javascript がいくつかあります。

私はstackoverflowに関する多くの投稿とそれにリンクされているさまざまなブログ投稿をたどり、それが機能すると主張しましたが、非常に厳密にフォローした後でも、結果を再現することはできませんでした.

 <CORSRule>
   <AllowedOrigin>*</AllowedOrigin>
   <AllowedMethod>GET</AllowedMethod>
 </CORSRule>

ルールに次のありとなしを追加してみましたが、

 <AllowedHeader>*</AllowedHeader>

次のリンクでは、XMLHttpRequests を送信して CORS が有効になっているかどうかをテストできます。有効ではないため、CORS が正しく設定または認識されていないことが示されています。

http://client.cors-api.appspot.com/client/

考えられるリードは、こちらの Amazon S3 ドキュメントで提案されているものです。

http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketGETcors.html

これは、「s3:GetCORSConfiguration」パーミッションを設定する必要があることを示しています。これは、次のような行で行いました...

"アクション": ["s3:GetObject", "s3:GetCORSConfiguration"],

AWS コントロール パネルの「バケット ポリシーの編集」セクションで、このアクションを認識しないためにエラーが発生し、保存できませんか?

ここのstackexchangeに関する潜在的に同様の投稿、

jquery または XMLHttpRequest から amazon aws への HTTP GET が Origin is not allowed by Access-Control-Allow-Origin で失敗する

S3でホストされているWebサイトがある場合、サードパーティのリソースにGETするXMLHttpRequestsを作成するように構成できないことを示唆しているようです?

私はぐるぐる回っているように感じます...誰か手がかり/アドバイスがありますか? ありがとう。

4

3 に答える 3

0

一部のクライアント マシンでハードコードされた構成である https に関連する、アプリで実行したばかりの例との関係がここにある可能性があります。正確な意味はわかりませんが、チェックする場所かもしれません。

http:// の代わりに https:// を試してください

一部のコンピューターでのみ Amazon S3 への XMLHttpRequest が失敗する

于 2014-12-09T18:46:36.360 に答える
-1

私はあなたが混乱しているか、あなたの質問を読み違えていると思います。

サイトで CORS を有効にして、他のサイトがページにリクエストを送信できるようにします。

S3 サイトで CORS を有効にすると、example.com が S3 ページと通信できるようになります。あなたのサイトが example.com と通信することを許可しません。

他のドメインにリクエストを行うには、権限を有効にする必要があります。ドメインに対して魔法のように有効にすることはできません。ホワイトハウスに足を踏み入れ、大統領のトイレを使用する許可を自分に与えると言っているようなものです。フェンスを飛び越えると、シークレット サービスはその要求を力ずくで拒否します。

于 2013-01-23T18:25:08.443 に答える