Cordova:HTTP GET在Android中不起作用

时间:2015-09-30 15:43:21

标签: android cordova cors http-get

我正在开发Cordova上的移动应用程序。主代码通过HTTP GET与本地服务器通信,例如:

    $.get( "http://192.168.2.6:8080/getStatus.sha",
        {},
        function(data) {
            alert ("checkIpAddress() success! Status: " + data.status);
        })
        .fail(function() {
            alert ("checkIpAddress() failed to get url \'" + url + "\'.");
        });

当我在Mozilla Firefox上运行该代码时,我得到了服务器状态(以及更多数据)。

但是当我在Android设备上运行Cordova程序时,我收到“checkIpAddress()failed”消息。

本地服务器支持CORS。 Crodova项目的config.xml具有以下设置:

<access origin="*" />
<allow-intent href="http://*/*" />

有任何修复错误的建议吗?谢谢!

1 个答案:

答案 0 :(得分:2)

如果您使用的是Cordova 5,并且设备和服务器可以互相看到(在同一个wifi网络上),则可能需要使用内容安全策略启用此功能。请参阅Cordova Whitelist Plugin.您要考虑向

添加元标记

示例配置如下:

<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'">

根据您的应用程序执行或未执行的操作,您可能不需要上面的所有其他选项,尽管某些Ajax和模板框架会。以上适用于使用JQuery和Handlebars的Cordova 5应用程序。