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

如何向.NET Core发送multipart/form-data请求时传递字符串类型Token

解决Vue对接.NET时form-data请求Token格式异常问题

问题根源

你的authHeader()函数应该返回了包含Token键的对象(比如{ Token: "xxx" }),而非直接返回Token字符串:

  • 未用JSON.stringify时,axios将对象转为字符串[Object object],后端无法识别
  • 用JSON.stringify后,Token变成{"Token":"xxx"}格式的JSON字符串,不符合后端需要的纯字符串要求

解决方案

方案1:修改authHeader()返回纯字符串Token

直接调整authHeader(),让它返回Token的字符串值:

function authHeader() {
  const user = JSON.parse(localStorage.getItem('user'));
  return user?.token || '';
}

之后所有接口(包括普通GET/POST和form-data请求)的headers中Token都会是纯字符串,无需额外处理。

方案2:保留authHeader()结构,请求时提取Token值

如果authHeader()不能修改(比如其他业务依赖其对象结构),就在请求时手动提取Token字符串:

updateMainIconPath(data) {
  const authInfo = authHeader();
  return axios.post(`${process.env.VUE_APP_PORTAL_API_URL}Page/update-page-icon-path`,
    data,
    {
      headers: {
        Token: authInfo?.Token || '',
        'Content-Type': 'multipart/form-data'
      }
    });
}

普通接口也要采用同样的写法,确保所有请求的Token格式统一。

后端验证

确认.NET后端是从请求头的Token字段直接读取字符串值,而非解析JSON格式,避免后端逻辑不匹配导致的验证失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 02:00:05