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

Vue使用axios请求报Uncaught (in promise) status code 415如何解决?

错误原因

HTTP 415 状态码全称是 Unsupported Media Type,意为服务器不支持当前请求所携带的媒体格式,核心问题出在请求头的Content-Type配置和后端接口要求的格式不匹配,或是提交的数据结构不符合接口要求。

解决方案
  • 先确认后端接口要求的请求数据格式:常见的格式有三种,对应不同的配置方案
    1. 接口要求application/json格式(绝大多数前后端分离场景的默认要求)
      axios默认提交的就是该格式,如果你自定义的shaxios修改过全局配置,可手动在请求时指定headers:
    Login (data) {
        return shaxios.post('api/Auth/Authorize', data, {
          headers: {
            'Content-Type': 'application/json'
          }
        })
      }
    
    1. 接口要求application/x-www-form-urlencoded表单格式
      需要先将提交的数据用qs库序列化后再传输:
    import qs from 'qs'
    Login (data) {
        return shaxios.post('api/Auth/Authorize', qs.stringify(data), {
          headers: {
            'Content-Type': 'application/x-www-form-urlencoded'
          }
        })
      }
    
    1. 接口要求multipart/form-data格式(含文件上传的场景)
      需要用FormData包装提交的所有参数:
    Login (data) {
        const formData = new FormData()
        // 遍历参数填入FormData
        Object.keys(data).forEach(key => {
          formData.append(key, data[key])
        })
        return shaxios.post('api/Auth/Authorize', formData, {
          headers: {
            'Content-Type': 'multipart/form-data'
          }
        })
      }
    
  • 检查shaxios的全局请求拦截器配置,确认没有覆盖修改请求头的Content-Type字段,或是错误转换了请求体数据格式。
额外优化提示

你当前外层封装的Promise逻辑可简化,无需额外嵌套一层Promise,直接返回authService.Login(user)的返回值即可,避免不必要的Promise嵌套导致的未捕获异常风险。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 03:27:05