チェックする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 をワイルド カードに設定するのは危険であり、ヘッダーを送信している場合、実際にはリクエストが失敗する原因になります(その場合、ワイルド カードは使用できません)。また、SetEnvIfApache の mod を使用すると、htaccess ファイルを微調整して、そのディレクトリへのすべてのリクエストではなく、適切な場合にのみヘッダーを返すことができます。