我的前端代码和api代码项目如project.com for frontend和api.project.com for api。
因为我已经配置了apache来接受跨域请求,所以浏览器接受调用不同的url,但它也会在每个GET请求之前用OPTION请求调用api。
我该如何避免OPTION请求?
我只为交叉域配置添加了以下参数;
Header set Access-Control-Allow-Origin '*'
答案 0 :(得分:2)
自定义Content-Type(application / json)实际上是在触发预检。根据CORS规范(http://www.w3.org/TR/cors/),除application / x-www-form-urlencoded,multipart / form-data或text / plain之外的任何Content-Type都会触发预检。
一旦浏览器收到这些标题,它就会发出实际请求。您可以在此处了解有关CORS预检请求的更多信息:
答案 1 :(得分:0)
如果设置自定义请求标头,XMLHttpRequest将仅为GET请求发送preflight options request。停止尝试设置自定义请求标头。
答案 2 :(得分:0)
我不确定这是否对您有所帮助 - 但您可以在apache配置中禁止OPTION请求。
请参阅:http://httpd.apache.org/docs/2.2/mod/core.html#limit
<Location /your/context>
<Limit OPTIONS>
Allow from x.y.z
Deny from all
</Limit>
...
</...>