1

最近、ウェブサイトの開発中に aws s3 でサブスクリプション オプションを使用して静的なウェブページをホストすることになりました。私の静的 Web ページは、サブスクライバーの電子メールをパラメーターとして使用して、別の RESTful サービスへの ajax 呼び出しを行います。サブスクリプションが完了したら、サブスクライバーに通知する必要があります。ここで、コールバックに問題があります。

$.ajax({
    type: 'GET',
    url: 'http://www.my-domain.com/api/Subscribe?email=' + email
}).success(function (data) {
    if (data) {
        alert('Thank you for registering!');
    }
});

サブスクリプションが完了した後、「.success(」は起動しません。リクエストに対するレスポンスは次のとおりです。

Reload the page to get source for: http://www.my-domain.com/api/Subscribe?email=john.smith@simplyemail.com

それがs3の機能なのか、それとも何か他の機能なのか、誰か知っていますか?

4

1 に答える 1

2

あなたの説明によると、これはCORSポリシーに関連しているようです。

Amazon が定義する「CORS の理由」に注目してください。

コンテンツを安全に保つために、Web ブラウザーには同一オリジン ポリシーと呼ばれるものが実装されています。

デフォルト ポリシーは、あるサイトまたはドメインからロードされたスクリプトやその他のアクティブ コンテンツが、これが望ましい動作であることを明示的に示さない限り、別の場所のコンテンツに干渉したり対話したりできないことを保証します。

場合によっては、元のページの開発者が、他の場所にあるコンテンツやサービスと対話するコードを記述する正当な理由がある場合があります。CORS は、開発者がブラウザーにこの対話を許可するように指示できるメカニズムを提供します。

私は理解した:

[...] 別の RESTful サービスへの ajax 呼び出し[...]

別のサーバーへの呼び出しを意味し、これはCORSのためにブラウザーによってブロックされる可能性があります。

参考文献:

モジラ W3C

于 2016-06-21T20:00:53.290 に答える