Jag*_*mag 9 ajax jquery jquery-mobile cordova
我有一个使用以下版本构建的移动Web应用程序: -
使用phonegap,此应用程序内置于本机Android应用程序并进行部署.
在我的应用程序中,我使用$ .ajax向外部网站进行各种AJAX调用.为此,我使用dataType:'jsonp'以进行跨域调用.
当我在Chrome v12.0.742.100中测试我的应用时,一切正常,我从外部网站检索数据时没有任何问题.但是,只要我将其打包成.apk文件并尝试在模拟器中运行它,我就会发现没有任何ajax调用正在运行.
我已经在ajax调用之前和之后发出警报并验证了两个警报都被调用但是ajax调用和忽略一样好.我已经登录成功回调和错误回调,但都没有到达.我还通过在外部服务器网站上设置断点来验证(对于我的测试,我只是在我的本地计算机本身上有一个单独的网站)并且服务器页面肯定没有被调用.
在logcat中,我能看到的错误是: D/SntpClient(59):请求时间失败:java.net.SocketException:协议不支持的地址族
我对phonegap和Jquery Mobile都很陌生,但就我的理解而言,我的phonegap app文件由file:/// protocol 引用,而我的AJAX URL是http://127.0.0.1:someport/someapp/somepage而错误似乎表明这两个不混!如果确实如此,我如何从一个部署的手机应用程序中进行ajax调用?
请随意指出其他可能有用的内容!我在这一点上很难过.
编辑:我已经检查了AndroidManifest.xml文件,并且此phonegap wiki链接的所有权限都在此文件中设置.
编辑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
}
});
Run Code Online (Sandbox Code Playgroud)
小智 11
Android模拟器无法识别"localhost"...它应该是10.0.2.2.尝试将网址更改为 http://10.0.2.2:2424/MyServer/RetrieveMasterData.aspx
归档时间: |
|
查看次数: |
12781 次 |
最近记录: |