JQuery mobile Phonegap:Ajax调用在Android Emulator上无效

前端之家收集整理的这篇文章主要介绍了JQuery mobile Phonegap:Ajax调用在Android Emulator上无效前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个使用以下版本构建的移动Web应用程序:

> JQuery Mobile:Alpha 4 v1.0a4.1
> JQuery:v1.6.1
> PhoneGap:v0.9.5

使用phonegap,这个应用程序是内置在一个本机Android应用程序并部署.

在我的应用程序中,我使用$.ajax对外部网站进行各种AJAX调用.
为此,我使用dataType:’jsonp’来进行跨域调用.

当我在Chrome v12.0.742.100中测试我的应用程序时,一切正常,我从外部站点检索数据没有问题.但是,一旦我将它打包成.apk文件,并尝试在模拟器中运行,我发现没有一个ajax调用正在工作.

我已经在ajax调用之前和之后发出警报,并验证这两个警报是否被调用,但是ajax调用与被忽略一样好.我已经登录成功回调和错误回调,也没有达到.我也通过在外部服务器网站上放置一个断点进行验证(对于我的测试,我只在本地机器上单独使用一个网站),并且服务器页面绝对不被调用.

在logcat中,我可以看到的错误是:
D / SntpClient(59):请求时间失败:java.net.SocketException:协议不支持的地址族

我对于手机差距以及Jquery Mobile来说非常新鲜,但据我了解,我的phonegap应用程序文件由file:///协议引用,而我的AJAX URL为http://127.0.0.1:someport/someapp/somepage,错误似乎表明这两个不混合!如果确实是这样,我该怎么做才能从部署应用程序的phonegap进行ajax调用

请随意指出可能有帮助的任何其他内容!在这一点上我很沮丧.

编辑:我已经检查了AndroidManifest.xml文件,并且在此文件中设置了这个phonegap wiki link的所有权限.

编辑2:添加我的客户端代码,用于介绍ajax调用

var serverUrl = "http://localhost:2424/MyServer/RetrieveMasterData.aspx";
            $.ajax({
                url: serverUrl,type: 'POST',dataType: 'jsonp',data: { MasterDataID: 1 },success: function(response) {
                        ...... business logic here
                },error: function(xhr,ajaxOptions,thrownError) {
                        ...... error handling something here
                }
            });

解决方法

Android模拟器无法识别“localhost”…应该是10.0.2.2.
尝试将url更改为
http://10.0.2.2:2424/MyServer/RetrieveMasterData.aspx

猜你在找的jQuery相关文章