我想将身份验证令牌发送到节点js后端服务器。这是我的客户端index.js文件。
auth.onAuthStateChanged(user => {
if(user!=null){
auth.currentUser.getIdToken(/* forceRefresh */ true)
.then((idToken) => {
// Send token to your backend via HTTPS
var xhr = new XMLHttpRequest();
xhr.open('POST', "/" , true);
xhr.onload = function(){
if(this.status == 200){
xhr.setRequestHeader('authToken', idToken);
}
}
xhr.send();
})
.catch(function(error) {
console.log(error);
});
}
})
,使用以下代码,我正在接收令牌。
router.post('/', function(req, res) {
authHeader = req.get('authToken');
console.log(authHeader);
});
但是我在终端中获得authHeader的值为undefined
。我该如何解决?
答案 0 :(得分:1)
您无需等待XHR请求完成就可以设置标题。相反,您应该在发送请求之前设置标头:
var xhr = new XMLHttpRequest();
xhr.open('POST', "/" , true);
xhr.setRequestHeader('authToken', idToken);
xhr.send();