在Android模拟器上Jquery ajax调用失败

时间:2012-06-27 07:47:39

标签: android jquery ajax

我正在尝试使用jquery ajax调用来调用webservice。 我使用jasonp作为数据类型来修复跨域问题。

它适用于所有浏览器。我在其他域上测试过它。我得到了有效的答复。 当我尝试从Android设备模拟器运行它时,webservice调用失败。

请建议。

代码:

function getJsonData()
{
    alert("Within get json function.. ");
    (function($) {
    var url = 'http://localhost:8080/mobile-services/rest/languages.json?callback=callback';
    $.ajax({
       type: 'GET',
        url: url,
        async: false,
        contentType: "application/json",
        dataType: 'jsonp'
    });
})(jQuery);
}
function callback(data)
        {
            alert(data);
        }

webservice响应。

callback([{"language":"English","id":1},{"language":"Hindi","id":2},{"language":"Marathi","id":3}])

这是一个有效的jsonp响应。

Android清单文件权限。

<uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.RECEIVE_SMS" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="android.permission.WRITE_CONTACTS" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="android.permission.BROADCAST_STICKY" />

1 个答案:

答案 0 :(得分:1)

在网络服务网址中,请尝试使用10.0.2.2代替localhost localhost127.0.0.1指向模拟器/ android设备,而10.0.2.2是主机环回接口的特殊别名(即开发计算机上的127.0.0.1)。有关详细信息,请查看此Link