离子请求仅在Android上返回404,在Chrome中它可以正常工作

Vic*_*lan 42 android http angularjs ionic-framework ionic

所以,我已经从离子克隆了教程app repo.我跑了

ionic start conference sidemenu
Run Code Online (Sandbox Code Playgroud)

然后我添加了一个简单的$ http.get('myserver')(我也试过了ngResources).

它在chrome上工作得很完美,我得到了所有数据但是在角度上我只有空数据和404状态在我试图做的任何请求.

注意:我尝试使用托管服务器和本地服务器.两者都在Android上失败.Server是node.js REST API.

控制台上没有打印任何内容,因此请求甚至无法到达服务器.

有没有人经历过这个或者可以告诉我如何调试使用Ionic构建的Android应用程序?

编辑1:我不知道你为什么需要它,但在这里

$http.get('http://server.com/route').success(function (data) {
            //handle success
        }).error(function (data, status) {
            // handle error
        });
Run Code Online (Sandbox Code Playgroud)

Vic*_*lan 90

问题是Cordova 4.0.0有一些重大变化:

主要变化[...] - 白名单功能现在通过插件提供(CB-7747)白名单已得到增强,更加安全和可配置框架现在支持Content-Security-Policy的设置(请参阅插件自述文件中的详细信息) )您将需要添加新的cordova-plugin-whitelist插件仍然可以通过插件获得旧版白名单行为(虽然不推荐).

所以我安装了Cordova Whitelist插件.并补充说

<allow-navigation href="http://*/*" />
Run Code Online (Sandbox Code Playgroud)

在我的config.xml档案中.

  • 谢谢.我搜索这个解决方案超过2天.我无法理解,如果没有定义访问来源,为什么Cordova没有抛出异常. (5认同)
  • 我发现我还必须添加Content-Security-Policy元标记,如http://stackoverflow.com/a/30209484/498949 (2认同)
  • 我赞成,因为它给了我绝对的推动我需要的方向,修复工作,但显然仍然必须调整它不完全用通配符.出于安全原因显然. (2认同)

San*_*ndy 7

就我而言,问题出在cordova-plugin-whitelist插件上。我刚刚删除了插件并添加了它。还通过 <access origin="*" />config.xml. 请找到以下命令:

您需要使用以下命令删除现有插件:

ionic cordova plugin rm cordova-plugin-whitelist
Run Code Online (Sandbox Code Playgroud)

然后只需使用以下命令添加它:

ionic cordova plugin add cordova-plugin-whitelist
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你。