在React中尝试使用fetch(api)时遇到错误。
fetch(url, {mode: "no-cors"})
.then(response => console.log(response.json()))
.catch(error => console.log('Error:', error));
错误消息是:
许诺
我正在使用react
和react路由器dom
。我看到另一个答案是添加一个服务endpoint的头或其他东西。但是我不能修改服务器。还有别的办法解决这个问题吗?
你说:
{mode: "no-cors"}
这意味着“不要做任何需要CORS的事情。不要报告CORS相关错误”。
如果您使用此命令进行跨源请求,则响应将为空。没有CORS的许可,您无法读取实际的响应。
因为您得到的响应是空的,所以在找到任何有效的JSON之前,您就到达了响应的末尾(即,.JSON()
期望找到JSON,并且意外地在找到任何JSON之前到达输入的末尾)。
使用:
{mode: "cors"}
但是我不能修改服务器。
如果服务器没有通过CORS开通权限,并且您无法更改,则从其他地方获取数据(例如,您控制的原点上的代理脚本)。