ホームページ >ウェブフロントエンド >jsチュートリアル >AWS API への AngularJS ngResource リクエストがプリフライトの Access-Control チェックに失敗するのはなぜですか?

AWS API への AngularJS ngResource リクエストがプリフライトの Access-Control チェックに失敗するのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-28 04:32:11572ブラウズ

Why is my AngularJS ngResource request to an AWS API failing the preflight Access-Control check?

プリフライトリクエストでアクセス制御チェックに失敗しました

エラーが発生しました

ngResource を利用してアマゾン ウェブ サービス上の REST API と対話する場合、ユーザーは次のエラーが発生する可能性があります:

XMLHttpRequest cannot load
http://server.apiurl.com:8000/s/login?login=facebook. Response to
preflight request doesn't pass access control check: No
'Access-Control-Allow-Origin' header is present on the requested
resource. Origin 'http://localhost' is therefore not allowed access.
Error 405

理解CORS

このエラーは、クロスオリジン リソース共有 (CORS) に起因します。 CORS は、あるドメイン (localhost など) のリソースが別のドメイン (server.apiurl.com など) のリソースに直接アクセスできないようにするセキュリティ制限を適用します。

トラブルシューティング オプション

問題を解決するには場合は、次のアプローチを検討してください:

  • 無効にするCORS: ブラウザ拡張機能または Chrome 設定を使用して、テスト目的で CORS を一時的に無効にします。
  • ブラウザ プラグインを使用する: ブラウザ プラグインをインストールして、クロスオリジン リクエストを有効にします。
  • プロキシを利用する: からのリクエストを転送するために nginx のようなプロキシを実装します。 localhost をリモート サーバーに接続し、ドメイン制限を回避します。
  • サーバーを構成します: EC2 インスタンス上の Web サーバーが CORS 用に正しく構成されていることを確認します。ガイダンスについては、特定のサーバーのドキュメントを参照してください。

クロスドメイン リクエストの影響

localhost から外部ドメインへのアクセスはクロスドメイン リクエストとなることに注意することが重要です。これにより、CORS セキュリティ メカニズムがトリガーされ、不正アクセスが防止されます。

CORS のバイパス

CORS を無効にするかプラグインを使用することは、テストの迅速な解決策になる可能性がありますが、相互接続の根本的な問題には対処できません。原点コミュニケーション。プロキシを使用するか、クロスオリジン アクセスを許可するようにサーバーを構成することは、より包括的なアプローチです。

以上がAWS API への AngularJS ngResource リクエストがプリフライトの Access-Control チェックに失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。