You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Strapi中使用Axios携带授权令牌发送POST请求?

在Strapi中使用Axios携带授权令牌发送POST请求的解决方案
  • 确认令牌的有效性和格式
    确保你拿到的是Strapi返回的完整JWT令牌,一般通过/api/auth/local登录接口获取,返回数据里的jwt字段就是要用的核心内容。别出现令牌截短、多打空格的情况,格式错误会直接导致验证失败。

  • 正确配置Axios请求头
    授权头的格式必须是Bearer <你的令牌>,注意Bearer后面有个空格,绝对不能漏。给你一个可直接参考的代码示例:

    import axios from 'axios';
    
    const jwtToken = '这里填入你的JWT令牌';
    const targetApi = 'http://localhost:1337/api/你的目标接口路径';
    const requestData = { /* 这里放置POST请求要提交的数据 */ };
    
    axios.post(targetApi, requestData, {
      headers: {
        'Authorization': `Bearer ${jwtToken}`,
        'Content-Type': 'application/json' // 提交JSON数据必须添加这个请求头
      }
    })
    .then(res => console.log('请求成功:', res.data))
    .catch(err => console.error('请求失败:', err.response?.data || err.message));
    
  • 检查Strapi后台的权限设置
    登录Strapi后台,找到你要访问的内容类型,切换到Permissions标签页,确认当前使用的角色(比如Authenticated)已经开启了该接口的create权限。如果是自定义路由,还需要在config/routes.js里配置对应的权限策略。

  • 排查跨域(CORS)问题
    如果前端和Strapi不在同一个域名下,需要在Strapi的config/middlewares.js里配置CORS允许携带凭证:

    module.exports = [
      // 保留其他原有中间件,仅修改cors配置部分
      {
        name: 'strapi::cors',
        config: {
          origin: ['你的前端域名'], // 例如'http://localhost:3000'
          credentials: true,
          methods: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'],
          allowedHeaders: ['Content-Type', 'Authorization'],
        },
      },
    ];
    

    修改完成后必须重启Strapi服务,配置才会生效。

  • 调试定位具体错误
    在Axios的catch块里打印完整的错误信息,尤其是err.response.data,Strapi会返回明确的失败原因,比如令牌过期、权限不足。也可以用浏览器开发者工具的Network标签,检查请求头里的Authorization字段是否正确携带,令牌内容是否完整。

内容的提问来源于stack exchange,提问作者Mohamed Mehdi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 08:02:33