2015-01-02 39 views
2

在我的網站上,我有一個自動建議文本輸入,用於輸入用戶輸入的結果。結果由AJAX調用提供給另一個域上的API。這意味着我必須使用CORS來允許請求。對cors/ajax請求的重複選項請求

這一切都很好,但每次用戶輸入一個新字符時,瀏覽器都會發送一個新的OPTIONS請求以確保其被授權。

See the request sequence here

是否有解決所有這些重複選項請求的方法嗎?

我的PHP腳本接收請求具有

header("Access-Control-Allow-Origin: http://consent.example.com"); 

,並請求都是從原產consent.example.com。要清楚,授權工作得很好,請求成功完成,但我不知道爲什麼需要繼續進行選項調用。瀏覽器會緩存這個對我來說是有意義的。

回答

1

RFC 2616 ("Hypertext Transfer Protocol -- HTTP/1.1"),第9.2節:

9.2 OPTIONS

...

該方法的響應不能緩存。

HTTP規範明確禁止緩存OPTIONS響應。

值得注意的是,GET響應也沒有采用緩存(我看到customers?search=alex每次都是200)。這僅僅是因爲服務器選擇不發送304請求的響應,或者你的瀏覽器不讓服務器知道它有一個緩存副本,If-Modified-SinceIf-None-Match請求標頭。