【问题标题】:How can I properly send Authorization Header with Bearer token in Angular Post Request? - "403 Forbidden" - Strapi如何在 Angular 发布请求中正确发送带有承载令牌的授权标头? - “403 禁止” - Strapi
【发布时间】:2020-10-05 22:23:34
【问题描述】:

我尝试对 Strapi API 进行 Angular 调用。当我使用与传递给此方法的相同 jwt 值时,我得到 200 并将新餐厅插入 Strapi DB。但是,当我将 Angular 与以下代码一起使用时,我会收到“403 Forbidden”错误:

  addRestaurant(restaurant, jwt) {
    const t = 'Bearer ' + jwt;
    const params = {data: restaurant, headers: {Authorization: t}};
    return this.httpClient.post('http://localhost:1337/restaurants', params);
  }

【问题讨论】:

  • 我认为这段代码看起来不错,您能检查一下请求中发送的令牌与您的自定义 Strapi API 调用中提供的令牌是否相同?顺便说一句 - 将来尝试使用interceptors for authorization tokens

标签: angular jwt strapi


【解决方案1】:

标题应单独提供给您要发布的数据。

Post 函数应该像this 一样使用。

this.httpClient.post(url, data, httpOptions); 

在你的情况下,应该是这样的:

addRestaurant(restaurant, jwt) {
    const httpOptions = {
        headers: new HttpHeaders({
            'Content-Type':  'application/json',
             Authorization: 'Bearer ' + jwt;
        })
    };
    return this.httpClient.post('http://localhost:1337/restaurants', restaurant, httpOptions);
  }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-07
    • 2015-08-01
    • 1970-01-01
    • 2021-03-03
    • 1970-01-01
    相关资源
    最近更新 更多