【发布时间】:2020-01-28 05:24:57
【问题描述】:
我正在我的本地机器 (localhost) 上运行一个开发项目,它试图通过 SSH 隧道(React JS SPA)从服务器上的端点加载数据。
SSH 隧道建立良好,端点在 Postman 中使用简单的 GET 运行时返回正确的数据包。
但是当我尝试从我的应用程序访问数据时(尝试获取和 Axios)返回 200,但不幸的是总是返回一个空数组 - 而不是 1k 对象数组。
以下是 2 个简单的请求,其中 'localhost:8912' 是暴露和映射的端口 - 在 Postman 中有效。
获取:
fetch("http://localhost:8912/ENDPOINT/")
.then(res => console.log(res))
.catch(err => {
console.log(err);
return null;
});
Axios:
axios
.get("http://localhost:8912/ENDPOINT/")
.then(data => console.log(data.data))
.catch(err => {
console.log(err);
return null;
});
结果几乎立即在浏览器中返回,但由于服务器端计算,在 Postman 中需要几秒钟。
欢迎提出任何建议。
【问题讨论】:
-
你的隧道必须隧道到 api,而不是前端应用程序
-
隧道未连接到前端应用程序,它已连接到 api,api 映射到该 localhost 端口并且在浏览器之外工作正常 - 即我可以达到所有端点从我的本地机器从 Postman 等内部和 api 在浏览器中返回 200,只是没有任何数据包 - 就好像 Promise 在返回数据之前完成 - 在浏览器之外不是这种情况。
-
将
localhost替换为127.0.0.1会发生什么?
标签: javascript axios cross-domain fetch-api ssh-tunnel