Cordova - 为啥 $http get 请求在 android 设备上失败但在 chrome 上工作

Posted

技术标签:

【中文标题】Cordova - 为啥 $http get 请求在 android 设备上失败但在 chrome 上工作【英文标题】:Cordova - Why is $http get request failing on android device but working on chromeCordova - 为什么 $http get 请求在 android 设备上失败但在 chrome 上工作 【发布时间】:2015-08-07 08:47:49 【问题描述】:

我在我的 cordova 项目中遇到了这个问题,该项目是用 angular 和 ionic 创建的。我已经尽我所能,但还是不行。

代码如下:

    function getSuccess(response) 
    $scope.modules = response.modules;
    $scope.list = $scope.modules;
    $scope.search = [
        str: ""
    ];


$http(method: 'GET',
        url: "http://xxx.xxx.xxx.xxx/api/modules"
    )
    .success(getSuccess)
    .error(function (response)
        alert("Damned");
    );

当然,IP 是有效的,并且可以在 chrome 浏览器中运行;) 那在我的控制器中。我已经在我的配置文件中添加了<access origin="*"/>,构建后它仍然在我的安卓设备上显示“该死的”。

科尔多瓦版本:5.0.0 安卓版本:5.1

【问题讨论】:

response 应该包含有关错误的详细信息。当您可以确切地知道出了什么问题时,不要输出固定(无用)的错误消息。 我实际上想使用console.log之类的东西,但我不知道如何在应用程序中做到这一点,知道吗? :// 甚至像 alert(JSON.stringify(response)) 这样的东西也可以提供帮助。任何东西都可以让错误对象的内容显示出来并可以查看。 安装白名单插件cordova-plugin-whitelist(而且我不搞乱ZOHANNNN) @aorfevre 发表您的评论作为答案,我会给它+1000。你只是救了我的命!特维姆! 【参考方案1】:

安装白名单插件:cordova-plugin-whitelist

自 Cordova 5.0.0 起,跨域请求必须使用白名单插件

【讨论】:

以上是关于Cordova - 为啥 $http get 请求在 android 设备上失败但在 chrome 上工作的主要内容,如果未能解决你的问题,请参考以下文章

cordova-HTTP:最简单的 GET 请求不起作用

Angular 4 + Http 不是 Cordova 中收集的垃圾

为啥请求中没有发送来自 $http GET 的数据? [复制]

为啥 Angular 6 不发送 HTTP Get/Post 请求?

Vue2:当我从响应中分配属性时,为啥会收到无限的 $http.get 请求?

ab压力测试 http协议中post请求 1000次请求 500并发 为啥请求会增多