前言:
目前朋友们对“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