Fetch Api:无法从本地主机获取数据

Posted

技术标签:

【中文标题】Fetch Api:无法从本地主机获取数据【英文标题】:Fetch Api:Can not get data from localhost 【发布时间】:2017-02-18 07:17:22 【问题描述】:

我一直在尝试使用 nativescript 创建一个 android 应用程序。我正在使用 fetch 模块从我的服务器获取响应。当我试图从 httpbin.org/get 获取响应时,它是好的。但是当我尝试从本地服务器获取响应时,我收到 Network Request Failed. 错误。

发送到httpbin.org/get-

return fetchModule.fetch("https://httpbin.org/get").then(response =>  return response.text(); ).then(function (r) 
        console.log(r);
    , function (e) 
            console.log(e);
        ); 

发送到 localhost:8000/api-

return fetchModule.fetch("http://localhost:8000/api").then(response =>  return response.text(); ).then(function (r) 

       console.log(r);

, function (e) 

        console.log(e);
    );

当我尝试通过 request 模块从纯 node.js 中的 localhost:8000/api 获取响应时,它工作正常。但是现在,我不知道如何在 nativescript 中使用 fetch 模块解决这个问题。

【问题讨论】:

你确定你的手机有网络连接吗? 不要使用 localhost 作为 localhost 指向本地设备,在这种情况下您的手机不是服务器。检查你的电脑什么是 IP 并更改 localhost 的 IP 为什么要联网?我正在使用 Android Studio 的 AVD。 查看这个答案***.com/q/5806220/3284355 localhost 指的是设备(模拟器)而不是模拟器运行的计算机的IP。 【参考方案1】:

模拟器 API 路径:- http://10.0.2.2:5000。就像您的 API 本地路径是 http://198.168.1:5000/api 或 http://localhost:5000/api 然后替换为 http://10.0.2.2:5000/api 并且端口地址与您的本地 API 端口相同。

路径- App_resources/Android/src/main/AndroidManifest.xml :-

android:usesCleartextTraffic="true" 添加应用标签

【讨论】:

【参考方案2】:

相反,localhost(通常是 127.0.0.1)使用 10.0.2.2(如果使用 AVD 模拟器)

10.0.2.2  - Special alias to your host loopback interface 
(i.e., 127.0.0.1 on your development machine)

对于 GenyMotion 模拟器,环回地址是 10.0.3.2

【讨论】:

像这样 - 10.0.2.2/api 还是像这样的 10.0.2.2:8000/api? 这里也请帮帮我superuser.com/questions/1449269/… @user145959 你应该使用https://10.0.2.2 instaed http://localhost ... IP地址192.168.xx(表示本地网络中的地址)与环回地址无关所以我不是确定你为什么首先尝试使用它。 @NickIliev:我像这样 export const baseURL = "https://10.0.2.2:3000"; 更改了我的代码,但没有用。我更新了我的问题

以上是关于Fetch Api:无法从本地主机获取数据的主要内容,如果未能解决你的问题,请参考以下文章

Fetch Api 无法从 PHP 服务器获取 Session

无法使用 fetch API 获取数据

无法从 Wikipedia API 获取数据

Fetch API 无法加载“.php”本地文件 - React JS + PHP

无法使用 fetch API 请求带有 HTML 页面的 localhost 节点服务器

使用 fetch API 从数组中获取数据的问题 [重复]