避免跨域OPTIONS请求



我有一个包含前端代码和api代码的项目,比如前端的project.com和api的api.project.com。

因为我已经将apache配置为接受跨域请求,所以浏览器接受调用不同的url,但它也在每个GET请求之前使用OPTION请求调用api。

如何避免OPTION请求?

我只添加了以下参数用于跨域配置;

Header set Access-Control-Allow-Origin '*'

自定义内容类型(application/json)实际上是在触发预飞行。根据CORS规范(http://www.w3.org/TR/cors/),除application/x-www-form-urlencoded、multipart/form-data或text/plain之外的任何内容类型都会触发预检。

一旦浏览器收到这些头,它就会发出实际的请求。您可以在这里了解更多关于CORS飞行前请求的信息:

http://www.html5rocks.com/en/tutorials/cors/

XMLHttpRequest只会在设置自定义请求头的情况下发送GET请求的preflight选项请求。停止尝试设置自定义请求标头。

我不确定这是否对您有帮助,但您可以在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> 
...
</...>

相关内容

  • 没有找到相关文章

最新更新