withCredentials 是用于跨域请求中,是否发送凭证(包括 cookies 和 HTTP 认证数据)的设置。如果设为 true,表示跨域能发送凭证。
当开启 withCredentials 时,如果服务器没有正确设置 CORS 响应头,浏览器会阻止响应
服务器的设置:
Access-Control-Allow-Origin 设置为你的请求的源(注意,不能是 *,因为 * 和 withCredentials 是不兼容的)
Access-Control-Allow-Credentials 设置为 true
这是网上能搜到的设置,但是还有一点就是
Access-Control-Expose-Headers 是一种响应头,是 CORS (Cross-Origin Resource Sharing) 协议中的一部分。此响应头指定了哪些 HTTP 响应头可以被 XMLHttpRequest 或 Fetch API 在前端JavaScript中访问。
默认情况下,有一些简单的响应头可以被允许,包括 Cache-Control, Content-Language, Content-Type, Expires, Last-Modified, 和 Pragma。如果你想让浏览器有权限访问到其他的响应头信息,就需要在 Access-Control-Expose-Headers 中明确指出这些头的名称。
Access-Control-Expose-Headers 设置为 * 是不被允许的。
不管前端是react还是vue框架,一旦开启withCredentials,Access-Control-Allow-Origin不能是*,同样服务器也要设置Access-Control-Allow-Credentials 设置为 true
标签:Control,withCredentials,Allow,开启,Access,响应,设置 From: https://www.cnblogs.com/zxeao/p/18048157