在我的网站上,我有一个自动建议的文字输入,用于根据用户类型建议结果。结果由对不同域上的API的AJAX调用提供。这意味着我必须使用CORS来允许请求。
这一切都运作良好,但每次用户键入新字符时,浏览器都会发送新的OPTIONS请求以确保其获得授权。
是否有解决所有这些重复选项请求的方法?
我的php脚本接收请求
header("Access-Control-Allow-Origin: http://consent.example.com");
并且请求都来自consent.example.com
。要明确的是,授权工作正常,请求成功完成,但我不知道为什么需要继续进行选项调用。我觉得浏览器会缓存它。
答案 0 :(得分:1)
根据RFC 2616 ("Hypertext Transfer Protocol -- HTTP/1.1"),第9.2节:
9.2选项
...
对此方法的响应不可缓存。
HTTP规范明确禁止缓存OPTIONS响应。
值得注意的是,GET响应也没有使用缓存(我看到customers?search=alex
每次都是200)。这只是因为服务器选择不为该请求发送304响应,或者您的浏览器不允许服务器通过If-Modified-Since
或If-None-Match
请求标头知道它具有缓存副本。