gpt4 book ai didi

javascript - 如何修复 Fetch API 中的 CORS 问题

转载 作者:搜寻专家 更新时间:2023-11-01 04:12:56 25 4
gpt4 key购买 nike

我正在使用 reactjs 构建一个仅限前端的基本天气应用程序。对于 API 请求,我使用的是 Fetch API。在我的应用程序中,我从 simple API 获取当前位置我发现并将位置作为 JSON 对象提供。但是当我通过 Fetch API 请求它时,我收到了这个错误。

Failed to load http://ip-api.com/json: Request header field Access-Control-Allow-Origin is not allowed by Access-Control-Allow-Headers in preflight response.

所以我搜索并找到了多种解决方案来解决这个问题。

  1. 在 Chrome 中启用 CORS 解决了该错误,但是当我在 heroku 上部署该应用程序时,如何通过移动设备访问它而不会遇到相同的 CORS 问题。
  2. 我找到了一个 proxy API启用 CORS 请求。但由于这是一个位置请求,这给了我代理服务器的位置。所以这不是解决方案。
  3. 我已经完成了 Stackoverflow question并将 header 添加到我的 http 请求的 header 中,但这并没有解决问题。 (仍然给出相同的错误)。

那么我怎样才能永久解决这个问题呢?我可以用来解决 Fetch API 中 http 请求的 CORS 问题的最佳解决方案是什么?

最佳答案

如果您正在发出帖子、放置或补丁请求,则必须使用 body: JSON.stringify(data)

对数据进行字符串化
fetch(URL, 
{
method: "POST",
body: JSON.stringify(data),
mode: 'cors',
headers: {
'Content-Type': 'application/json',
}
}
).then(response => response.json())
.then(data => {
....
})
.catch((err) => {
....
})
});

关于javascript - 如何修复 Fetch API 中的 CORS 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48728173/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com