Я пытаюсь сделать пост-запрос, где я включаю токен JWT в заголовок. Моя проблема в том, что при выполнении запроса я получаю сообщение об ошибке:
ERROR HttpErrorResponse {headers: HttpHeaders, status: 404, statusText: "Not Found", url: "http://localhost:4200/api/asdf", ok: false, …}
Мой запрос выглядит так:
const httpOptions = {
headers: new HttpHeaders({
'authorization': 'Bearer ' + localStorage.getItem('token')
})
};
await this.http.post<any>(
'/api/asdf',
httpOptions
)
.subscribe(data => {
this.usersFromBackEnd = data,
console.log(data)
});
Соответствующая конечная точка api:
app.get('/api/asdf', function(req, res){
middleware.checkToken(req, res, next);
handlers.index(req, res);
console.log('asdf');
});
Мой метод handlers.index ():
index (req, res) {
res.json({
success: true,
message: 'Index page'
});
}
Мой метод middleware.checktoken ():
let checkToken = (req, res, next) => {
let token = req.headers['x-access-token'] || req.headers['authorization']; // Express headers are auto converted to lowercase
if (token) {
if (token.startsWith('Bearer ')) {
// Remove Bearer from string
token = token.slice(7, token.length);
}
jwt.verify(token, config.secret, (err, decoded) => {
if (err) {
return res.json({
success: false,
message: 'Token is not valid'
});
} else {
req.decoded = decoded;
next();
}
});
} else {
return res.json({
success: false,
message: 'Auth token is not supplied'
});
}
Примечание: фрагмент URL: /api/asdf
просто заполнитель и будет заменен позже.
Не могли бы вы помочь понять, почему я получаю эту ошибку и как я могу ее исправить?
Заранее большое спасибо! С наилучшими пожеланиями, Сэмюэль
РЕДАКТИРОВАТЬ: сообщение об ошибке содержит localhost: 4200, однако я думаю, что localhost: 3000 должен быть вызван, как это установлено в моем файле proxy.conf. json:
{
"/api/*": {
"target": "http://localhost:3000",
"secure": false,
"logLevel": "debug",
"changeOrigin": true
}
}
Также терминал в журналах VSCode:
[HPM] POST /api/asdf -> http://localhost:3000
Также я делаю другие вызовы на стороне сервера тем же способом, где я также указываю только фрагмент кода без адреса localhost , Пожалуйста, поправьте меня, если я ошибаюсь - я только начинаю ...