Phonegap:ajax + jsonp在PC上工作,但在Android上没有

时间:2013-04-10 22:06:47

标签: android json cordova jsonp

使用Cordova 2.5.0 + jQuery 1.91,我正在尝试解析远程JSON

$.support.cors = true;
$.mobile.allowCrossDomainPages = true;
$.ajax({
        url: 'http://sub.foo.com/json.php?callback=?',
        dataType: 'jsonp',
        jsonp: 'jsoncallback',
        timeout: 5000,
        success: function(data, status){
                alert("OK");
        },
        error: function(){
                alert("Error");
        }
});

它可以在我的桌面Chrome浏览器上运行,但不能在我的Android模拟器上运行(“错误”消息)。

我确实在'AndroidManifest.xml'上设置了权限

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

和'config.xml'

<access origin="http://sub.foo.com" />

我做错了什么?非常感谢你。

1 个答案:

答案 0 :(得分:1)

在res / xml / cordova.xml文件中添加以下行

<access origin="http://127.0.0.1*"/> <!-- allow local pages -->
    <access origin="http://192.168.1.211*" subdomains="true"/>
    <access origin="http://70.38.120.153:240*" subdomains="true"/>
    <!-- <access origin="https://example.com" /> allow any secure requests to example.com -->
    <!-- <access origin="https://example.com" subdomains="true" /> such as above, but including subdomains, such as www -->
    <access origin=".*"/>

    <log level="DEBUG"/>
    <preference name="useBrowserHistory" value="true" />
    <preference name="exit-on-suspend" value="false" />