xhr.withCredentials与CORS的关系
- 发送同域请求时,浏览器会自动将cookie加在reuqest header中
- 发送跨域请求时,浏览器并没有将cookie加在request header中
原因:CORS标准规定,默认情况下,浏览器发送跨域请求时,不能发送任何认证信息(credentials)
如:cookie,HTTP authentication schemes
- client端手动设置
xhr.withCredentials = true
- server端允许requestHeader能携带认证信息,即:
Access-Contorl-Allow-Credentials: true
- 注意:一旦跨域request能够携带认证信息,server端一定不能将
Access-Contorl-Allow-Origin设置为*,而必须设置为请求页面的域名
参考:https://segmentfault.com/a/1190000004322487#articleHeader13