所以我通过ajax发送请求,并在其中设置标头,然后我可以登录并看到标头确实已设置
server {
listen 80;
server_name foo.bar;
return 301 https://foo.bar$request_uri;
}
但是,当我尝试将标头记录到节点中时,它们又以空白显示
RewriteEngine on
RewriteRule ^/?([^/]+)/.+/([^/]+\.php)$ /$1/$2 [END]
日志$.ajax({
headers: {
Authorization: localStorage.getItem('t')
},
type: 'GET',
dataType: 'json',
url: `/updatebackground?b=${bg}`,
success: function(data) {
console.log('yay');
},
complete: function() {
console.log(this.headers)
}
});
我不确定为什么会发生这种情况,我们将不胜感激
答案 0 :(得分:0)
大概它与req.headers.authorization一起使用对于它为什么是小写的并没有什么意义,但是无论如何。我将把这个问题留在这里供其他遇到相同问题的人使用。
答案 1 :(得分:0)
在服务器上,您尝试访问 response 对象上的标头,而不是 request 对象上的标头。由于客户端在请求上设置了标头,因此所需的标头将在请求或req
上。
如果您将该服务器端代码更改为:
http.createServer(async (req, res) => {
console.log(req.headers);
});
您将看到请求标头
答案 2 :(得分:0)
这是因为您正在记录 res 标头,而不是 req 标头。
记录请求标头的正确代码是:
http.createServer(async (req, res) => {
console.log(JSON.stringify(req.headers));
});
res._headers用于设置服务器发送给客户端作为请求答案的响应的标题。