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

使用Axios带Header发送POST请求返回400错误,疑与FileBase64有关

解决POST请求返回Bad Request的问题

可能的原因及对应解决方案:

  • 请求URL错误
    你代码里用GET_CATEGORIES作为POST请求的地址,这个变量名看起来是获取分类的GET接口,大概率不是提交产品的POST接口。先确认这个URL是否正确,换成后端指定的产品提交接口地址。

  • Content-Type与数据格式不匹配
    你当前设置的Content-Type: application/json,但如果用FileBase64转了base64文件,后端可能不期望JSON格式:

    1. 如果后端接收JSON:确保传入的data是完整合法的JSON结构,比如base64字段的键名要和后端约定一致,没有遗漏必填字段。
    2. 如果后端接收文件表单:把base64转成Blob,用FormData来传递,同时去掉手动设置的Content-Type(axios会自动处理):
      // 把base64转成Blob的工具函数
      function dataURLtoBlob(dataurl) {
        const arr = dataurl.split(',');
        const mime = arr[0].match(/:(.*?);/)[1];
        const bstr = atob(arr[1]);
        const n = bstr.length;
        const u8arr = new Uint8Array(n);
        while(n--) {
          u8arr[n] = bstr.charCodeAt(n);
        }
        return new Blob([u8arr], { type: mime });
      }
      
      // 构建FormData示例
      const blob = dataURLtoBlob(file);
      const formData = new FormData();
      formData.append('file', blob); // 字段名和后端保持一致
      formData.append('productName', '示例产品'); // 其他必填字段
      
      // 修改请求头,去掉Content-Type
      const header = {
        headers: {
          'Authorization': 'Bearer ' + TOKEN
        }
      }
      
  • TOKEN有效性问题
    检查TOKEN是否过期、格式是否正确(Bearer 后面必须有空格),可以在Network面板里查看请求头里的Authorization字段是否和后端要求一致。

  • 请求体结构不符
    打开浏览器开发者工具的Network面板,查看发送的POST请求的Request Payload,对比后端文档要求的字段和格式,确认没有缺失或错误。

内容的提问来源于stack exchange,提问作者Mücahit

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 13:10:49