首页 > 解决方案 > 415 Unsupported Media Type Fetch POST 请求

问题描述

我正在尝试向一些 3rd 方 API 发送 fetch POST 请求。在 Postman 中测试此调用时,我能够获得成功的 200 响应。在我的项目中使用来自 Postman 的相同代码会返回 415 Unsupported Media Type。我一直在寻找解决方案,并尝试按照几篇文章和文章的建议发送带有以下标题的邮件。

myHeaders.append("Content-Type", "application/json");
myHeaders.append("Access-Control-Allow-Origin", "*");
myHeaders.append("Accept", "application/json");

我已将我的 API 调用附在下面,如果有人能够发现我收到此 415 的原因,那将非常有帮助。

var myHeaders = new Headers();
myHeaders.append("xxxxx_api_key", "");
myHeaders.append("Content-Type", "application/json");
myHeaders.append("Access-Control-Allow-Origin", "*");
myHeaders.append("Accept", "application/json");

var raw = JSON.stringify({
    api_key: "xxxxx_api_key",
    profiles: [{
      email: "thomas.jefferson@example.com",
      phone_number: "17326138213",
      example_property: "valueB",
    }],
  });
console.log(raw);
var requestOptions = {
  method: "POST",
  mode: "no-cors",
  headers: myHeaders,
  body: raw,
  redirect: "follow",
};

fetch("https://a.klaviyo.com/api/v2/list/XXXXX/members", requestOptions)
  .then((response) => response.json())
  .then((result) => console.log(result))
  .catch((error) => console.log("error", error));

这是从 Postman 导出的工作请求

curl --location --request POST 'a.klaviyo.com/api/v2/list/XXXXX/members' \ 
   --header 'Content-Type: application/json' \ 
   --header 'xxx_api_key;' \ 
   --data-raw '{ "api_key": "xxx_api_key", "profiles": [ { "email": "thomas.jefferson@example.com", "phone_number": "17326138213", "example_property": "valueB" } ] }'

标签: jsonapirestfetch-apihttp-status-code-415

解决方案


嘿,您可以使用中间件:

将您的网址更改为

https://cors-anywhere.herokuapp.com/YOUR-URL-HERE

来源:https ://github.com/Rob--W/cors-anywhere


推荐阅读