Запрос на работу с почтальоном, но с угловым возвратом 401
Вот мой угловой метод
getGiftList(url: string){
let q = this.baseUrl + url;
let headers = new HttpHeaders();
let authToken = 'Bearer ' + this.authService.currentUser.token;
console.log(q); //Log the url ...
console.log(authToken); Log the token ...
headers.set('Authorization', authToken)
return this.http.get(q, {
observe: 'response'
,headers: headers
})
}
И это основной метод Asp.net
[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
public class GiftController : Controller
{
[HttpGet("api/giftsByGiver/{email}")]
public IActionResult getGiftBasicRecordsByGiver(string email, int cpg = 1)
{
//
}
}
Когда я делаю запрос из моего углового кода, я получаю 401
ошибка. Тем не менее, когда я копирую /peste те же значения, которые я записал в Postman и запускаю, я получаю правильный результат.
Я что-то пропустил?
Спасибо за помощь
1 ответ
Решение
HttpHeaders является неизменным. Вызов set() не изменяет его. Возвращает новый экземпляр HttpHeaders. Так вам нужно
headers = headers.set('Authorization', authToken);
Или проще, если вы измените порядок своих инструкций:
const authToken = 'Bearer ' + this.authService.currentUser.token;
const headers = new HttpHeaders().set('Authorization', authToken);
Вы должны проверить свои предположения: просто откройте сетевую панель инструментов разработки вашего браузера и убедитесь, что вы отправляете то, что, как вы думаете, вы отправляете.