码迷,mamicode.com
首页 > 其他好文 > 详细

xhr.withCredentials与 CORS 什么关系

时间:2020-06-07 15:03:49      阅读:70      评论:0      收藏:0      [点我收藏+]

标签:注意   ica   浏览器   head   header   认证   client   问题   ons   

我们都知道,在发同域请求时,浏览器会将cookie自动加在request header中。但大家是否遇到过这样的场景:在发送跨域请求时,cookie并没有自动加在request header中。
造成这个问题的原因是:在CORS标准中做了规定,默认情况下,浏览器在发送跨域请求时,不能发送任何认证信息(credentials)如"cookies"和"HTTP authentication schemes"。除非xhr.withCredentials为true(xhr对象有一个属性叫withCredentials,默认值为false)。

所以根本原因是cookies也是一种认证信息,在跨域请求中,client端必须手动设置xhr.withCredentials=true,且server端也必须允许request能携带认证信息(即response header中包含
Access-Control-Allow-Credentials:true),这样浏览器才会自动将cookie加在request header中。

另外,要特别注意一点,一旦跨域request能够携带认证信息,server端一定不能将
Access-Control-Allow-Origin设置为*,而必须设置为请求页面的域名。

xhr.withCredentials与 CORS 什么关系

标签:注意   ica   浏览器   head   header   认证   client   问题   ons   

原文地址:https://www.cnblogs.com/nizuimeiabc1/p/13060306.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!