Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用React native访问节点时返回未处理的承诺拒绝警告(id:0)_Javascript_Node.js_React Native_Axios - Fatal编程技术网

Javascript 使用React native访问节点时返回未处理的承诺拒绝警告(id:0)

Javascript 使用React native访问节点时返回未处理的承诺拒绝警告(id:0),javascript,node.js,react-native,axios,Javascript,Node.js,React Native,Axios,我有一个测试后端路线 router.get("/test", (req, res) => { console.log("it works!"); return res.json({ msg: "Success from backend" }); }); 在我的react native组件中,我有一个方法: export const registerUser = async () => { const res = await axios.get("http:

我有一个测试后端路线

router.get("/test", (req, res) => {
    console.log("it works!");

    return res.json({ msg: "Success from backend" });
});
在我的react native组件中,我有一个方法:

export const registerUser = async () => {
    const res = await axios.get("http://localhost:5000/api/users/test");

    console.log("response received --> ", res.data);
};
我得到一个错误:

[Unhandled promise rejection: TypeError: Network request failed]
但是,当我访问
http://localhost:5000/api/users/test
通过我的浏览器,我得到了预期的响应和行为

不知道我做错了什么。我甚至尝试过使用
react native axios
库,而不仅仅是
axios
,但我收到了相同的错误/警告。此外,我正在将一个运行正常的ReactJS应用程序转换为React native,因此我确信我的后端逻辑/语法配置正确


编辑

全面警告如下:


编辑2

axios调用代码:

try {
  console.log("trying");
  const res = await axios.get("http://localhost:5000/api/users/test", {
    headers: {
      "Access-Control-Allow-Origin": "*"
    }
  });

  console.log("got it"); // never reached
} catch (err) {
  console.log("oh no"); // this doesn't log either, oddly enough
  console.log(err);
}
引发警告:

[Unhandled promise rejection: TypeError: Network request failed]
* client/node_modules/react-native/Libraries/vendor/core/whatwg-fetch.js:504:29 in onerror
* client/node_modules/event-target-shim/lib/event-target.js:172:43 in dispatchEvent
* client/node_modules/react-native/Libraries/Network/XMLHttpRequest.js:580:29 in setReadyState
* client/node_modules/react-native/Libraries/Network/XMLHttpRequest.js:394:25 in __didCompleteResponse
* client/node_modules/react-native/Libraries/vendor/emitter/EventEmitter.js:190:12 in emit
* client/node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:366:47 in __callFunction
* client/node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:106:26 in <unknown>
* client/node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:314:10 in __guard
* client/node_modules/react-native/Libraries/BatchedBridge/MessageQueue.js:105:17 in callFunctionReturnFlushedQueue
[未处理的承诺拒绝:类型错误:网络请求失败]
*onerror中的client/node_modules/react native/Libraries/vendor/core/whatwg fetch.js:504:29
*dispatchEvent中的client/node_modules/event target shim/lib/event target.js:172:43
*setReadyState中的client/node_modules/react native/Libraries/Network/XMLHttpRequest.js:580:29
*client/node_modules/react native/Libraries/Network/XMLHttpRequest.js:394:25 in_uudidcompleteresponse
*emit中的client/node_modules/react native/Libraries/vendor/emitter/EventEmitter.js:190:12
*调用函数中的client/node_modules/react native/Libraries/BatchedBridge/MessageQueue.js:366:47
*client/node_modules/react native/Libraries/BatchedBridge/MessageQueue.js:106:26 in
*client/node_modules/react native/Libraries/BatchedBridge/MessageQueue.js:314:10 in_uu-guard
*callFunctionReturnFlushedQueue中的client/node_modules/react native/Libraries/BatchedBridge/MessageQueue.js:105:17

使用邮递员或直接从浏览器works。。通过React native它不

本地开发服务器无法访问,因为该端口尚未由
ADB
传递。因此,在这种情况下,您可以映射
本地服务器端口
或使用
本地IP地址
执行两项任务

通过在终端执行以下命令,从
ADB
获取端口:

adb reverse tcp:5000 tcp:5000

您也可以使用本地IP。摇动仪器或按住菜单按钮打开显影剂菜单。单击打开
开发设置
,然后单击下一步。然后点击设备的调试服务器主机和端口
。在这里,您可以输入机器的本地IP,端口号为
5000

示例

192.168.1.50:5000

无法访问本地开发服务器,因为
ADB
尚未传递该端口。因此,在这种情况下,您可以映射
本地服务器端口
或使用
本地IP地址
执行两项任务

通过在终端执行以下命令,从
ADB
获取端口:

adb reverse tcp:5000 tcp:5000

您也可以使用本地IP。摇动仪器或按住菜单按钮打开显影剂菜单。单击打开
开发设置
,然后单击下一步。然后点击设备的调试服务器主机和端口
。在这里,您可以输入机器的本地IP,端口号为
5000

示例

192.168.1.50:5000

你没有得到一些类似CORS同源的错误吗?我专门找的,没有,那不是错误。我是否应该对此进行相应的调查?尝试包装axios。尝试捕获块中的捕获块和控制台日志错误您是如何“专门”查找的?因为对我来说,这确实像是一个SOP问题(CORS是一种解决方法)。从错误中可以看出,您的源代码似乎是端口19001,但您尝试访问的URL具有端口5000。这些都是不同的起源。你有一个运行在android上的服务器吗?否则,你需要指定你的网络ip。你没有收到类似CORS同源之类的错误吗?我专门找过,没有,这不是错误。我是否应该对此进行相应的调查?尝试包装axios。尝试捕获块中的捕获块和控制台日志错误您是如何“专门”查找的?因为对我来说,这确实像是一个SOP问题(CORS是一种解决方法)。从错误中可以看出,您的源代码似乎是端口19001,但您尝试访问的URL具有端口5000。这些都是不同的起源。你有一个运行在android上的服务器吗?否则,您需要指定您的网络ip。