gpt4 book ai didi

html - Access-Control-Allow-Headers header 有什么意义

转载 作者:可可西里 更新时间:2023-11-01 16:26:55 25 4
gpt4 key购买 nike

我正在阅读 Cross-Origin Resource Sharing标准,有一件事对我来说没有意义。

假设我想从域 A 向域 B 发送请求,包括授权 header 。据我了解,域 B 上的服务器需要通过发送 header Access-Control-Allow-Headers 来接受这一点。

这有什么意义?我认为同源策略是为了保护来自域 B 的数据不泄露到域 A 上的网站。我不明白 A 向 B 发送哪些 header 有什么关系。

最佳答案

请注意,预检请求存在的全部原因是为您在 CORS 之前无法执行的请求提供保护。每个简单的请求(例如不需要预检的请求)都可以使用现有机制完成。例如,没有自定义 header 的 GET 请求类似于 JSONP 请求,而没有自定义 header 的 POST 请求类似于 JavaScript form.submit()。服务器必须已经准备好接收来自其他域的这些类型的请求,因为它们可以在没有 CORS 的情况下执行。

CORS 为服务器引入了一系列新的 HTTP 方法和 header 。为了验证服务器是否准备好响应这些请求,引入了预检的概念。预检验证在将实际请求发送到服务器之前是否允许特定的 HTTP 方法/ header 组合。

为什么不发送实际的请求,而只是阻止客户端接收响应呢?实际请求可能会产生副作用(例如,更新或删除数据库条目),而仅发送请求就可能触发副作用。

发送预检并验证 HTTP header ,确保服务器不会对 CORS 引入的新型请求感到惊讶。

关于html - Access-Control-Allow-Headers header 有什么意义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17992042/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com