跨域前提条件
需要服务端设置响应报文:Access-Control-Allow-Origin
全部可访问
Access-Control-Allow-Origin: *
指定域名访问
Access-Control-Allow-Origin: abc.com
服务端响应头设置携带cookies
要求ajax请求时携带cookies,服务端需要设置响应头:Access-Control-Allow-Credentials: true
注意:
仅且只有在设置指定域名访问时,即 Access-Control-Allow-Origin: abc.com
时,才允许携带cookies
关于跨源发送cookie
xhr.withCredentials=true;
这里跨源指的是 跨的二级的域,根域必须相同,而且cookie的域必须是根域
比如 a.a.cn可以通过这里所说的跨源 在向b.a.cn发送ajax请求时 带上 .a.cn下的cookie
不要以为 域在.a.cn下的cookie ,a.a.cn在向b.a.cn发请求时 会自动带上
也不要认为cookie的跨源能跨根域,是不可能的
文章来源:H&K-跨源通信-cnblogs
建议
综上,建议需要前端携带cookies时,不依赖请求头,直接通过js获取cookies,在请求params里拼接发送给服务端。