龙空技术网

跨域接口调试

思维1plus1 151

前言:

目前朋友们对“ajax不能设置cookie”都比较关心,姐妹们都想要了解一些“ajax不能设置cookie”的相关资讯。那么小编在网络上收集了一些对于“ajax不能设置cookie””的相关内容,希望大家能喜欢,同学们一起来了解一下吧!

登录

XMLHttpRequest.withCredentials原创

2019-03-12

雾里看花叹朦胧

码龄9年

关注

XMLHttpRequest.withCredentials属性是一个布尔值,表示跨域请求时,用户信息(比如 Cookie 和认证的 HTTP 头信息)是否会包含在请求之中,默认为false,即向 example.com发出跨域请求时,不会发送 example.com 设置在本机上的 Cookie(如果有的话)。

如果需要跨域 AJAX 请求发送 Cookie,需要withCredentials属性设为true。注意,同源的请求不需要设置这个属性。

var xhr = new XMLHttpRequest();

xhr.open('GET', ';, true);

xhr.withCredentials = true;

xhr.send(null);

1234

为了让这个属性生效,服务器必须显式返回Access-Control-Allow-Credentials这个头信息。

Access-Control-Allow-Credentials: true

1

withCredentials属性打开的话,跨域请求不仅会发送 Cookie,还会设置远程主机指定的 Cookie。反之也成立,如果withCredentials属性没有打开,那么跨域的 AJAX 请求即使明确要求浏览器设置 Cookie,浏览器也会忽略。

注意,脚本总是遵守同源政策,无法从document.cookie或者 HTTP 回应的头信息之中,读取跨域的 Cookie,withCredentials属性不影响这一点。

标签: #ajax不能设置cookie