gpt4 book ai didi

javascript - CORS - 服务器如何知道是否使用了 Jquery ajax 的 "withCredentials : true"?

转载 作者:搜寻专家 更新时间:2023-11-01 04:30:09 28 4
gpt4 key购买 nike

我正在框架中实现 CORS(跨源资源共享)。

我知道当使用 Jquery 的 ajax(...) 发出 XMLHttpRequest 请求并且 withCredentials 属性为 true 时,服务器必须回应这两件事:

  • Access-Control-Allow-Credentials: true
  • Access-Control-Allow-Origin:[THE_DOMAIN]

服务器不能用通配符响应,Access-Control-Allow-Origin:*: doesn't work !

我的问题:我怎么知道,在服务器上,withCredentials: true 已被使用,所以我不使用通配符?

我比较了使用 withCredentials: false 和使用 withCredentials: true 时发送的 header ,它们是相同的!

所以,如果我确实想在客户端请求凭据时允许凭据,这是否意味着我不能永远使用Access-Control-Allow-Origin:*?

最佳答案

So, if I do want to allow credentials when the client requests it, does it mean I can't, ever, use Access-Control-Allow-Origin:*?

是的。

Access-Control-Allow-Origin:* 的要点在于,它可以让您毫不费力地授予对每个网站的访问权限。它让你说“这个数据是公开的,任何人都可以访问它”。

如果您需要凭据才能访问资源,那么说“此数据是公开的,任何人都可以访问它”是没有意义的。

如果您要授予对每个网站的访问权限,那么登录您网站的人访问的每个网站都可以从中读取数据(有效地公开)。

因此,您需要有一个允许访问数据的受信任站点的白名单,然后在明确授予对它们的访问权限之前检查 Origin header 。

关于javascript - CORS - 服务器如何知道是否使用了 Jquery ajax 的 "withCredentials : true"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36992199/

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