我正在尝试使用Google Cloud提供的VM来托管与Spring Boot服务(在Docker容器中运行)联系的React.js前端。我能够成功联系Spring Boot服务,无论是本地还是远程运行,而我的React应用程序都在我的开发机器上。但是,现在我也试图将React部分移动到云端。但是,当我使用axios.js库发出请求时:
if str1 in line:
....
if str2 is not None and str2 in line:
....
其中“baseEndpoint”来自配置文件:
componentDidMount() {
axios.get(this.props.baseEndpoint + "/inventory")
.then((res) => {
const inv : any = res.data;
console.log(res);
this.setState( {inventory: inv});
});
axios.get(this.props.baseEndpoint + "/category")
.then((res) => {
const cats : any = res.data;
console.log(res);
this.setState( {categories: cats});
});
}
请求失败。
使用Firefox Developer的工具,会在控制台中记录“网络错误”。但是,每当我切换到“网络”选项卡本身时,就好像“获取”请求仍处于待处理状态。没有响应状态(例如500,404,200等),“已传输”和“大小”字段均为0.响应有效负载为空。
React应用程序使用非常简单的Nginx配置提供服务。
export const BASE_URL : string = "http://localhost";
export const SEARCH_BASE : string = BASE_URL + ":8081/find";
export const INVENTORY_BASE : string = BASE_URL + ":8082";
但是,我可以使用curl成功server { listen 80;
root /home/kelly/workspace/front-end/distr;
index index.html
location / {}
}
同一个端点(例如http://localhost:8082/category)就好了。问题可能是什么?我也试过127.0.0.0。
感谢。
编辑:
Firefox Developer工具的请求标头:
GET
卷曲的示例输出:
Accept
application/json, text/plain, */*
Accept-Encoding
gzip, deflate
Accept-Language
en-US,en;q=0.5
Connection
keep-alive
Host
localhost:8082
Origin
http://mysite
Referer
http://mysite/index.html
User-Agent
Mozilla/5.0 (X11; Linux x86_64…) Gecko/20100101 Firefox/58.0
编辑二:
网络不是我的专业领域,但是,我尝试在联系我的应用程序时运行tcptrack -i eth0。我从本地计算机/浏览器中看到两个请求端口80(可能是我的HTML页面一个,我的.js文件一个)。我还看到从我的VM的IP到169.254.169.254(基于此question,只是与云提供商关联的链接本地地址)和我的SSH连接的多个连接。但是,我没有看到任何关于端口8081,8082或其他任何地方的请求。不确定这是否有助于提供一些见解。
再次感谢。