首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自Phonegap Android的AJAX请求失败

来自Phonegap Android的AJAX请求失败
EN

Stack Overflow用户
提问于 2013-08-15 23:29:39
回答 3查看 47.4K关注 0票数 24

在过去的两天里,我一直在研究这个问题,并考虑了许多其他的建议。是的,我可以让这个简单的ajax请求在phonegap应用程序中工作,无论是在android模拟器上还是在实际的android手机上。

我的phonegap版本是(使用phonegap -v) 3.0.0-0.14.3

我使用的代码是:

代码语言:javascript
复制
var url = 'http://www.thomas-bayer.com/sqlrest/CUSTOMER';
    return $.ajax({
        type: "GET",
        url: url,
        timeout: 60 * 1000
    }).done(function (data) {
        alert('hey');
    }).fail(function (a, b, c) {
        console.log(b + '|' + c);
    });

我在日志中得到的结果是:

在file:///android_asset/www/js/index.js:62上的错误

我将设置添加到AndroidManifest.xml中

代码语言:javascript
复制
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />

我在Config.xml中有以下内容

代码语言:javascript
复制
<param name="android-package" value="org.apache.cordova.core.NetworkManager" />

当我检查navigator.connection.type时,模拟器上有3G,物理电话上有wifi

你知道还有什么会出错吗?

UPDATE:如果我在失败函数的第一个参数中记录JSON:

代码语言:javascript
复制
{"readyState":4,"status":404,"statusText":"error"}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-08-16 04:32:14

为了使AJAX调用正常工作,您应该使用白名单域。

将这一行添加到配置文件-中:

代码语言:javascript
复制
<access origin="*" />

除非另有规定,Phonegap的默认策略将阻止所有网络访问。上面的行将禁用此安全限制。您还可以更具体地允许某些域绕过此安全特性,方法是将域名包括在配置文件中,如下所示

代码语言:javascript
复制
<access origin="http://yourdomain" />
票数 49
EN

Stack Overflow用户

发布于 2013-12-22 05:47:07

除了白名单之外,确保cors标志是真的,以支持跨源资源共享。

代码语言:javascript
复制
$.support.cors=true;

请找到参考资料这里

票数 16
EN

Stack Overflow用户

发布于 2016-04-15 22:31:25

在使用Visual时,我有一个localhost url。我通过编辑VS项目Applicationhost.config文件并制作绑定协议的版本来解决问题,即:port: not *:port:localhost,然后通过ip地址进行访问。确保获得对端口的所有引用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18263578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档