【发布时间】:2020-04-10 19:12:55
【问题描述】:
我尝试在启用跨域的情况下从我的 API 中获取一些数据,但出现此错误。
使用他们提供的示例与JSONPlaceholder(用于测试的在线 REST API)相同:
fetch('https://jsonplaceholder.typicode.com/todos/1')
.then(response => response.json())
.then(json => console.log(json))
两个请求(JSONPlaceholder 和我的 API)都可以使用 Insomnia(一个 REST 客户端)正常工作,所以我猜测问题出在我的 React 应用程序 (16.13.1) 中。
编辑
经过一些测试,似乎只有在从<form> 调用 fetch 函数时才会出现错误,这里有一些细节:
handleSubmit = () => {
fetch('https://jsonplaceholder.typicode.com/todos/1')
.then(response => response.json())
.then(json => console.log(json))
}
<form onSubmit={this.handleSubmit} >
<button type="submit">FETCH</button>
</form>
谢谢。
【问题讨论】:
-
你能提供你得到的完整错误吗?还是只是“TypeError:NetworkError”?
-
是的,仅此而已,没有细节。
-
你没有以任何方式发现你的错误。尝试添加 .catch(err => console.error(err)) 以便将完整错误打印到控制台,然后将输出添加到您的问题中。它可能会增加一些清晰度。
-
@Phoenix1355,catch返回同样的信息,已经试过了。
-
您是否尝试过阻止 default()? handleSubmit=(e)=>{e.preventDefault() ...等}
标签: javascript reactjs