axios HTTP请求在我的真实的Android设备上不起作用(React Native Expo Tunnel)

gijlo24d  于 2023-05-22  发布在  iOS
关注(0)|答案(1)|浏览(280)

我在通过axios.post()将数据发布到服务器时遇到了这个问题。当我在真实的的Android设备上运行我的应用程序时,它总是会捕获错误“网络错误”。但是当我使用android模拟器设备时,它工作正常,并返回响应。我试着使用“ngrok http 5000”,并使用ngrok给我的uri,但也不起作用。我在这一点上是绝望的,因为我的应用程序是使用QR码扫描仪和独立的通知。我无法测试它,而使用模拟器。请帮帮我!我在下面留下了我的axios.post()方法

const login = async (email, password, navigation) => {
  userState.loading = true;

  axios
    .post(`http://${localIP}:5000/api/user/login`, {
      email,
      password,
    })
    .then((response) => {
      userState.loading = false;
      userState.user = response.data;
      console.log("Data: ", response.data);
      navigation.reset({
        index: 0,
        routes: [{ name: "Home" }],
      });
    })
    .catch((err) => {
      userState.loading = false;
      console.log("ERR :", err.message);
    });
};

我尝试使用“ngrok http 5000”并使用ngrok给我的uri,但也不起作用。

7uzetpgm

7uzetpgm1#

为了给予一个明确的答案,可能需要一点信息,但值得考虑安装调试器并检查网络请求,以查看它们在哪里出错。但这里有几件事可以尝试:
在AndroidManifest.xml文件中添加以下行:<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
使用http://my.local.ip:port而不是http://localhost:5000(看起来你正在这样做,如果不是,你可以通过命令提示符中的ipconfig获得这个)
尝试将"Content-Type": "application/json", Accept: "application/json"标头添加到Axios请求

相关问题