#angular #typescript #https #xmlhttprequest #http-headers
Вопрос:
у меня есть серверная часть в узле js expree и sequelize, я пытаюсь получить все мои типы продуктов, когда я сделал запрос с почтальоном на мой сервер, это ответ:
http-запрос почтальона и заголовок
но когда я делаю ту же петицию на своем интерфейсе, я получаю ошибку
header Authorization is missing
это мой http-запрос на угловые сервисы
getTypes(token:any):Observablelt;anygt;{ let headers = new HttpHeaders().set('Content-Type', 'application/json') .set('Authorization', token); console.log(headers) return this._http.post(this.url 'productType/getall', {headers:headers}); }
это заголовок, который идет на мой сервер почтальона
{ authorization: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7InN1YiI6MSwibmFtZSI6ImFkbWluIiwic3VybmFtZSI6ImFkbWluIiwicm9sZSI6InVzZXJfYWRtaW4iLCJpYXQiOjE2MzU2ODA3ODZ9LCJpYXQiOjE2MzU2ODA3ODYsImV4cCI6MTYzNTc2NzE4Nn0.9e-sP6ZnUeYe0EEpuLyQmxvIu7-U1_oXLZlt76XbBs0', 'user-agent': 'PostmanRuntime/7.28.3', accept: '*/*', 'cache-control': 'no-cache', 'postman-token': 'b97c28a2-f88e-4953-93d5-199fd1443d77', host: 'localhost:3002', 'accept-encoding': 'gzip, deflate, br', connection: 'keep-alive', 'content-length': '0' }
и это из моего углового интерфейса
{ host: 'localhost:3002', connection: 'keep-alive', 'content-length': '476', 'sec-ch-ua': '"Google Chrome";v="95", "Chromium";v="95", ";Not A Brand";v="99"', accept: 'application/json, text/plain, */*', 'content-type': 'application/json', 'sec-ch-ua-mobile': '?1', 'user-agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95 .0.4638.54 Mobile Safari/537.36', 'sec-ch-ua-platform': '"Android"', origin: 'http://localhost:4200', 'sec-fetch-site': 'same-site', 'sec-fetch-mode': 'cors', 'sec-fetch-dest': 'empty', referer: 'http://localhost:4200/', 'accept-encoding': 'gzip, deflate, br', 'accept-language': 'es-ES,es;q=0.9,en;q=0.8' }
я не знаю, почему не отправляется авторизация с помощью токена , токен не является нулевым
Ответ №1:
Ваши post
параметры HttpClient расположены не в правильном порядке..
post(url: string, body: any, options: { headers?: HttpHeaders....
2-й параметр-это тело post
, 3-й-параметры с заголовками
Или, может быть, вам следует использовать get
— в этом случае вы бы сохранили свои параметры как есть