android - 来自 Phonegap Android 的 AJAX 请求失败

标签 android cordova

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

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

我使用的代码是:

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);
    });

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

error| at file:///android_asset/www/js/index.js:62

我将设置添加到 AndroidManifest.xml

<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 中有以下内容

<param name="android-package" value="org.apache.cordova.core.NetworkManager" />

当我检查 navigator.connection.type 时,我在模拟器上得到 3G,在实体手机上得到 wifi

知道还有什么问题吗?

更新: 如果我将 JSON 记录在失败函数的第一个参数中,我会得到:

{"readyState":4,"status":404,"statusText":"error"}

最佳答案

你应该 whitelist域,以便您的 AJAX 调用正常工作。

将此行添加到配置文件-:

<access origin="*" />

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

<access origin="http://yourdomain" />

关于android - 来自 Phonegap Android 的 AJAX 请求失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18263578/

相关文章:

javascript - Chrome Cordova 应用插件访问

android - 在android中通过索引指针检测移动事件

ios - 在 Cordova 构建 ios 期间找不到团队 ID 的代码签名错误

cordova - 使用 Monaca IDE 和 cordova Phonegap-facebook-plugin 构建 Android 应用程序

android - 一个大 View 或一系列较小的 View

cordova - 带有phonegap/cordova的 meteor

android - 如何在cordova android App中使用proguard

安卓 MVP :Accessing Content Provider in Presenter

android - 寻找适用于 Android 的 ANPR/LPR(自动车牌识别/车牌识别)SDK

android:layout_alignParentBottom 在没有显式布局高度的情况下被忽略作为 ListView 中的一行