我已经建立了两个项目。第一个是我正在使用Expo在手机上测试的React Native应用程序。第二个是在我的计算机上运行的标准node.js服务器。
我已通过以下apiCall过滤了react native应用程序中的所有axios请求,以便完整的URL附加到该URL(包括ip),并可以在需要时在一个地方更新。< / p>
apiCall.js:
import axios from 'axios';
// made an apiCall function to connect to server
export default async ({ url, method, data }) => {
console.log('in apiCall');
try {
// const reqUrl = `http://192.168.1.9:5000${url}`; // home
const reqUrl = `https://172.16.21.223:5000${url}`; // coffee shop
let response = await axios({
url: reqUrl,
method,
data
});
return response.data;
} catch (err) {
console.log('inside catch of apiCall');
if (err.response && err.response.data) {
throw new Error(err.response.data.message)
}
throw new Error(err.message);
}
}
昨天,我使用家庭URL来运行它。今天,我决定在咖啡店工作。我的手机和计算机都连接到相同的wifi(需要密码才能访问它)。当我到达这里时,我将url更新为我的计算机现在反映的ip地址,但是api调用没有通过。我在服务器项目中的请求顶部放置了一个控制台日志,它没有出现。客户端项目报告insuccessful post, error: [Error: Network Error]
。
如果重要的话,我通过遍历系统偏好设置并将其从“网络”页面的Wi-Fi is connected to *wifi name* and has the IP address *172.16.21.223*.
行中拉出,发现两个ip地址的使用方式相同。
我想知道咖啡馆的wifi是否具有某种阻止访问的安全功能。我将不胜感激。 (如果没有任何效果,我将再次在家里进行处理!)