Запрос на работу с почтальоном, но с угловым возвратом 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);

Вы должны проверить свои предположения: просто откройте сетевую панель инструментов разработки вашего браузера и убедитесь, что вы отправляете то, что, как вы думаете, вы отправляете.

Другие вопросы по тегам