2014-10-31 70 views
1

我想在我的服務中實現正確的CORS邏輯。從查看所有可用的文檔,我不清楚在一個交叉源OPTIONS請求的情況下,客戶是否會發送(1)飛行前OPTIONS請求,並且如果飛行前響應允許, (2)「常規」(非飛行前)OPTIONS請求。對於一個跨國來源的OPTIONS請求,是否有一個「常規」OPTIONS請求之後的飛行前OPTIONS請求?

換句話說,在我的服務器中,當我得到一個OPTIONS前請求時,我是否應該同時執行CORS邏輯和正常的OPTIONS請求處理邏輯,填充正常的OPTIONS響應頭以及Access-Control- *響應頭文件?

或者我應該只是爲飛行前請求做CORS邏輯,並且如果OPTIONS方法被允許來自原點,期望一個後續的OPTIONS請求?

回答

3

在OPTIONS請求的情況下[用於指向一個權威的參考加分],您將收到預檢OPTIONS請求,其次是實際OPTIONS請求。可以識別預檢OPTIONS請求,因爲它將具有:1)OPTIONS HTTP方法,2)Origin標頭,以及3)Access-Control-Request-Method標頭。實際的OPTIONS請求將只有:1)一個OPTIONS HTTP方法,以及2)一個Origin頭。實際的OPTIONS請求將不具有Access-Control-Request-Method標頭。

下面是一個演示此示例的示例:http://client.cors-api.appspot.com/client#?client_method=OPTIONS&client_credentials=false&server_enable=true&server_status=200&server_credentials=false&server_methods=OPTIONS&server_tabs=local

相關問題