2013-01-09 60 views
2

我是從一個網站做跨域請求到我的Rails應用程序,使用機架CORS中間件(雖然我不認爲這個問題是特定於機架CORS)。當我用螢火蟲檢查控制檯輸出時,我注意到只有一個請求出去了,POST請求。 OPTIONS請求是祕密提出的嗎?CORS預檢選項請求返回200 OK嗎?

同樣的,當我檢查我的服務器日誌中我看到

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預檢選項請求中得到什麼樣的響應?

回答

5

CORS選項的迴應應該返回200S,並與他們一起的Access-Control-*頭品種。

我的猜測是,你沒有看到它在你的軌道記錄爲「已完成200」,因爲它是在一個點在Rails框架發生日誌記錄之前發生在Rack中間件。

您可以檢查請求/響應頭在Firebug/Chrome的開發者工具網絡面板,以確認一切正常進行。我不相信螢火蟲隱藏OPTIONS請求,但它可能是,如果返回Access-Control-Max-Age是OPTIONS請求的結果被緩存。

+1

是啊,果然他們在那裏在網絡面板。謝謝!我現在感覺更聰明(不幸的是,這意味着這不是我的問題的原因...很快就會對這些標籤有更多疑問!)。 – Ziggy

相關問題