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

调用Azure上的REST API时POST请求出现415不支持媒体类型错误

解决Azure REST API POST请求返回415 Unsupported Media Type的问题

我来帮你排查这个头疼的415错误,这种情况大多是请求的格式细节没处理到位,咱们一步步拆解问题:

先检查最容易踩坑的两个点

1. 确认Content-Type的拼写和大小写

你提到设置了Application/json,但HTTP标准里的MIME类型是小写的application/json。虽然部分服务器兼容大写,但Azure的API服务(比如API Management、Function App)对MIME类型的大小写可能比较严格,建议你把请求头改成:

headers: {
  'Content-Type': 'application/json',
  // 若API需要授权,记得加上对应的Authorization头
}

2. 务必把JavaScript对象序列化为JSON字符串

很多人会犯的错:直接把JS对象传给请求body,而没有用JSON.stringify()转换。服务器需要的是纯JSON字符串,不是JS对象。比如:
❌ 错误写法:

body: { name: "test", value: 123 } // 直接传JS对象

✅ 正确写法:

body: JSON.stringify({ name: "test", value: 123 }) // 转成JSON字符串

完整的componentDidMount示例代码

这里给你一个标准的请求写法,你可以对照调整:

componentDidMount() {
  // 定义要传递的JS对象
  const requestData = {
    userId: 123,
    action: "submit",
    details: {
      key: "value"
    }
  };

  fetch("https://your-azure-api-endpoint-url", {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      // 如果API需要身份验证,这里添加对应的头,比如:
      // "Authorization": "Bearer " + yourAccessToken
    },
    body: JSON.stringify(requestData)
  })
  .then(response => {
    if (!response.ok) {
      throw new Error(`请求失败:${response.status} ${response.statusText}`);
    }
    return response.json();
  })
  .then(data => {
    console.log("请求成功,返回数据:", data);
    // 处理返回数据的逻辑
  })
  .catch(error => {
    console.error("请求出错:", error);
  });
}

进一步排查技巧

如果上面的调整还是没解决问题,你可以用浏览器开发者工具(Network标签)确认:

  • 找到这个POST请求,查看Request Headers里的Content-Type是否确实是application/json(有没有被框架或库覆盖)
  • 查看Request Payload,确认发送的是有效的JSON字符串(没有语法错误,比如多余的逗号)

检查Azure端配置

如果前端请求确认没问题,那可能是Azure API的配置问题:

  • 如果是Azure Functions,检查function.json里的binding是否设置了正确的contentType
  • 如果是API Management,确认API的操作策略允许接受application/json类型的请求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 09:10:59