跳到主要内容

withCredentials

2024年04月17日
柏拉文
越努力,越幸运

ajax.withCredentials 属性是一个 Boolean 类型,它指示了是否该使用类似 CookiesAuthorization Headers (头部授权) 或者 TLS 客户端证书这一类资格证书来创建一个跨站点访问控制(cross-site Access-Control)请求。在同一个站点下使用 withCredentials 属性是无效的。

语法

document.cookie = "id=0928;username=bolawen;"
const ajax = new XMLHttpRequest();
ajax.open("post", "http://localhost:4000/post-method", true);
ajax.setRequestHeader("Content-Type", "application/json");
ajax.withCredentials = true;
ajax.onreadystatechange = () => {
if (ajax.readyState === 4 && [200, 304].includes(ajax.status)) {
const { response } = ajax;
const result = JSON.parse(response);
console.log(result);
}
};
const data = JSON.stringify({
a: 1,
b: 2,
c: 3,
});
ajax.send(data);

说明

http://localhost:3000 页面请求 http://localhost:4000 服务,如果要携带 http://localhost:3000 页面的 cookie ,那么需要配置ajax.withCredentials = true