作为背景,我有一个位于远程 EC2 Ubuntu 实例上的 React 应用程序。同一台服务器还运行一个 Go 应用程序,侦听端口 8080(端口已从安全设置向所有人开放)。
我正在尝试从 React 应用程序中使用 Fetch API 发出请求,如下所示:
var bearer = 'Bearer ...'
return fetch('http://localhost:8080/home', {
headers: new Headers({
'Authorization': bearer
})
})
在 Chrome 和 Firefox 的控制台中,我得到:
类型错误:尝试获取资源时出现网络错误
当我替换时也是如此localhost
with 127.0.0.1
.
然而,使用 EC2 实例的外部 IP 是可行的(并触发 CORS 请求 - 由于“授权”标头 - 由服务器顺利处理)。
在后一种情况下,我还可以看到服务器记录了 OPTIONS 和 GET 的传入请求(在前一种情况下,这两种方法都没有日志)。
我还尝试从 EC2 机器进行 CURL'inglocalhost
并且请求有效地通过了,这让我认为使用 Fetch API 根本不会触发请求。
任何意见,将不胜感激。如果我做错了什么,请指出我正确的方向。
我刚刚遇到了同样的问题。我设法通过添加来使其工作"proxy": "http://localhost:4000"
to package.json
.
然后你可以写这样的请求fetch('/api/todos')
.
他们解释得很好here https://facebook.github.io/create-react-app/docs/proxying-api-requests-in-development.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)