我正在尝试使用XMLHttpRequest设置cookie。我在回复XHR帖子请求时看到“Set-Cookie”标题,但我没有在document.cookie中看到cookie。这很好,但是,我最终希望cookie不会暴露给javascript环境,但是我没有看到任何后续发布请求来自脚本的cookie,我认为cookie会自动附加到浏览器的请求中。这是不正确的?关于cookie是否被设置,我有点困惑,我可以用一些帮助搞清楚。
以下是客户端代码的样子:
(function() {
var xhr = new XMLHttpRequest();
var authUrl= "http://api.myserver.io/cookie"
xhr.addEventListener("load", reqListener);
xhr.open("POST", authUrl, true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.credentials = true;
xhr.send();
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) {
debugger;
// I'm not seeing anything in xhr.request
}
}
var reqListener = function() {
debugger;
}
})()
服务器代码正在使用expreess并使用此函数处理请求:
var setCookie = function(req, res) {
res.cookie('test-cookie', Date.now(), {
maxAge: 3600000000,
path: '/' });
res.status(200).end()
}
答案 0 :(得分:1)
我需要设置xhr.withCredentials = true
,而不是xhr.credentials = true