7

私はbackbone.jsのモデルを使用しています。モデルを保存すると、Firefoxのサーバー側にHTTP OPTIONSメソッドが送信されますが、safariを使用してHTTPPOSTメソッドが送信されます。

それはbackbone.jsの問題ではなく、CORSの問題であることを私は知っています。サーバー側でメソッド、GET、POST、PUT、およびDELETEを確認するだけで、HTTPOPTIONSメソッドではジョブを実行しません。

リクエストされたURLは私のAPIです:api.foo.comとAPIはからリクエストされました:bar.com

では、すべてのブラウザで、OPTIONSではなくHTTP POSTを使用してapi.foo.comをリクエストするにはどうすればよいですか?api.foo.comのコンテンツを他のドメインからのすべてのリクエストと共有するにはどうすればよいですか?

注:応答のヘッダーをサーバー側から次のように変更しました:Access-Control-Allow-Origin:*

4

1 に答える 1

7

OPTIONSリクエストは、実際にはCORS仕様のいわゆるプリフライトリクエストです。このプリフライトリクエストは、サーバーがそれぞれのオリジンからのリクエストを受け入れる条件を確認するためにWebブラウザによって使用されます。プリフライトリクエストへの応答が満足のいくものであった場合、ブラウザは実際のリクエストを送信します。

したがって、この仕様に準拠するには、プリフライトリクエスト処理の手順を再現するサーバーが必要です。

于 2011-12-01T14:15:20.007 に答える