Я использую nodejs с express как остальные API, на стороне клиента я использую jQuery (ajax) для http-запроса.Когда пользователь выполняет запрос на вход в систему, сервер возвращает объект пользователя в качестве тела и токен x-auth в заголовке.Проблема в том, что по каким-то причинам я не вижу заголовок x-auth в данных ответа.Код на стороне сервера:
//POST api/login
app.post('/api/login', (req, res) => {
var body = _.pick(req.body, ['email', 'password'])
console.log(body)
var user;
User.findByCredentials(body.email, body.password).then((result) => {
user = result
return user.generateAuthToken()
}).then((token) => {
// as you see i put the token here as header, and it is not null i
// made debugging.
res.status(200).header('x-auth', token).send(user)
}).catch((e) => {
res.status(400).send('Unauthorized')
})
})
Код на стороне клиента:
let loginRequest = {
"email":username,
"password":password
}
loginRequest = JSON.stringify(loginRequest)
console.log(loginRequest)
var res = $.ajax({
url:"http://192.168.1.22:3000/api/login",
method: "POST",
data: loginRequest,
contentType: "application/json;charset=utf-8",
dataType: 'json',
cache: false,
success: function(user, status, response){
console.log('Login success :'+status);
console.log(user.fullName +", role: "+user.role)
//i try to print all the headers here but it not contain the x-auth
console.log(`${response.getAllResponseHeaders()}`)
},
error: function(e){
console.log("login error, status: "+e.status +" message :
"+e.responseText);
}
})
Когда я печатаю все заголовки: response.getAllResponseHeaders()
результат будет: content-type: application/json; charset=utf-8
Iтакже есть Android-клиент для этого API и в Android у меня есть заголовок X-Auth.Я скучаю по чему-то в AJAX?