为什么会发送选项请求并禁用它?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (13)

我正在构建一个网络API。我发现每当我使用Chrome发布,进入我的API,总有一个选项请求发送之前,真正的请求,这是相当恼人的。目前,我让服务器忽略任何选项请求。现在我的问题是,发送选项请求以使服务器负载翻倍有什么好处?是否有任何方法可以完全阻止浏览器发送选项请求?

提问于
用户回答回答于

OPTIONS请求就是我们所说的pre-flight请求Cross-origin resource sharing (CORS).

当您在特定情况下提出不同来源的请求时,它们是必要的。

一些浏览器提出此飞行前请求是作为一种安全措施,以确保正在执行的请求受到服务器的信任。这意味着服务器理解对请求发送的方法、源和头是安全的。

当尝试跨源请求时,服务器不应忽略这些请求,而应处理这些请求。

处理这些问题的方法之一是确保任何路径都可以使用OPTIONS方法,服务器发送带有此标头的响应。

Access-Control-Allow-Origin: *

用户回答回答于

要禁用选项请求,对Ajax请求必须满足以下条件:

  1. 请求不设置自定义HTTP报头,如“application/xml”或“application/json”等
  2. 请求方法必须是GET、Head或POST。如果是POST,内容类型应该是application/x-www-form-urlencodedmultipart/form-data,或text/plain

扫码关注云+社区