チェックする2つのこと(サーバー側の言語/テクニックが何であるかはわかりません):
OPTIONS
に有効なメソッドとして含めていますAccess-Control-Allow-Methods
か? 例:
Access-Control-Allow-Methods: GET, OPTIONS
リクエストが送信するカスタム ヘッダーは、許可されたものとしてブラウザに返されていますか? 例:
Access-Control-Allow-Headers: X-PINGOTHER
リモート サーバーは、安全な標準準拠のブラウザー (IE の古いバージョンではない) が発信元以外の応答を許可する前に、これらの両方 (および最も確実に 2 番目のブラウザー) を返す必要があります。
したがって、これを HTTP サーバー レベルで実装し、Web サービスの移植性を維持したい場合は、次のことを試してください。
Web サービスの URL はhttp://example.org/service
であり、サービスへのパスは/srv/www/service
Apache 2.0 を実行している場合、ヘッダーを追加する構文は です。2.2add
では、 を使用しますset
。
したがって、次のように変更/srv/www/service/.htaccess
します。
Header set Access-Control-Allow-Methods "GET, OPTIONS"
Header set Access-Control-Allow-Headers "X-MY_CUSTOM_HEADER1,X-MY_CUSTOM_HEADER2"
Header set Access-Control-Allow-Origin "*"
もちろん、mod_headers
上記が機能するためには Apache モジュールがオンになっている必要があります。Access-Control-Allow-Credentials: true
また、allow-origin をワイルド カードに設定するのは危険であり、ヘッダーを送信している場合、実際にはリクエストが失敗する原因になります(その場合、ワイルド カードは使用できません)。また、SetEnvIf
Apache の mod を使用すると、htaccess ファイルを微調整して、そのディレクトリへのすべてのリクエストではなく、適切な場合にのみヘッダーを返すことができます。