提问者:小点点

未捕获(在promise中)语法错误:获取API时,React中输入的意外结束


在React中尝试使用fetch(api)时遇到错误。

fetch(url, {mode: "no-cors"})
.then(response => console.log(response.json()))
.catch(error => console.log('Error:', error));

错误消息是:

许诺

我正在使用reactreact路由器dom。我看到另一个答案是添加一个服务endpoint的头或其他东西。但是我不能修改服务器。还有别的办法解决这个问题吗?


共1个答案

匿名用户

你说:

{mode: "no-cors"}

这意味着“不要做任何需要CORS的事情。不要报告CORS相关错误”。

如果您使用此命令进行跨源请求,则响应将为空。没有CORS的许可,您无法读取实际的响应。

因为您得到的响应是空的,所以在找到任何有效的JSON之前,您就到达了响应的末尾(即,.JSON()期望找到JSON,并且意外地在找到任何JSON之前到达输入的末尾)。

使用:

{mode: "cors"}

但是我不能修改服务器。

如果服务器没有通过CORS开通权限,并且您无法更改,则从其他地方获取数据(例如,您控制的原点上的代理脚本)。