2

Rack-corsミドルウェアを使用して、サイトからRailsアプリにクロスドメインリクエストを作成しています(ただし、この質問はrack-corsに固有のものではないと思います)。firebug を使用してコンソール出力を調べると、送信されるリクエストは POST リクエストの 1 つだけであることがわかります。OPTIONSリクエストは秘密裏に行われますか?

同様に、サーバーログを調べると、

Started OPTIONS "/australia_post_api_connections" for 127.0.0.1 at 2013-01-08 16:06:18 -0800

しかし、対応するものはありません

Completed 200 OK in 1441ms (Views: 85.2ms | ActiveRecord: 0.0ms)

これは正常ですか、それとも OPTIONS リクエストが完了していないということですか? CORS プリフライト OPTIONS リクエストからどのような応答を期待する必要がありますか?

4

1 に答える 1

5

CORS OPTIONS 応答は 200 を返す必要があり、それらに加えて一連のAccess-Control-*ヘッダーが返されます。

Railsフレームワークでログが発生する前の時点でRackミドルウェアで発生しているため、Railsログに「Completed 200」として表示されていないと思います。

Firebug/Chrome の開発者ツールのネットワーク パネルでリクエスト/レスポンス ヘッダーをチェックして、すべてが正しく処理されていることを確認できます。Firebug が OPTIONS リクエストを隠しているとは思いませんが、OPTIONS リクエストの結果Access-Control-Max-Ageが返された場合、その結果がキャッシュされている可能性があります。

于 2013-01-09T00:27:42.623 に答える