【问题标题】:Phonegap developer app doesn't send ajaxPhonegap 开发者应用程序不发送 ajax
【发布时间】:2015-07-27 19:28:11
【问题描述】:

我正在使用 phonegap 并通过本地服务器(phonegap 服务)进行开发。 Ajax 以前可以完美运行,但现在却不行。现在,当我调用 ajax 函数时,什么也没有发生。我做了什么:

1) 编辑config.xml并添加

<access origin="*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />

2) 编辑 AndroidManifest.xml <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permissions.NETWORK_ACCESS" />

3) 使用 jsonp 代替 json。它有效,但返回 404

4)Urls 和 params 和以前一样,问题不在这里

5)apk-build 在所有安卓设备上都能正常工作

6)重新安装phonegap应用并将android重置为facroty数据

7) 我的 ajax 示例

app.ajax = {

load: function(method, url, data, onSuccess) {

    var beforeSend = function() {
        $('body').append($('<i class="loading-icon"></i>'));
    };

    var onComplete = function() {
        $('.loading-icon').remove();
    };
    var onError = function(jqXHR, textStatus, errorThrown){
      console.log(jqXHR);
    };
    $.ajax({
        method: method,
        url: url,
        data: data,
        beforeSend: beforeSend,
        success: onSuccess,
        complete: onComplete,
        error: onError
      });
}};

8)节点版本:v0.10.25 Cordova 版本:5.1.1

【问题讨论】:

    标签: javascript ajax json cordova phonegap-build


    【解决方案1】:

    @KENMAN143, 在 #3 上它清楚地显示 404(意思是:找不到文件)。由于您之前已经这样做过,我假设您正确地处理了 deviceready 事件。这留下了白名单所需的 NEW 插件。这很容易错过,因为它不在博客上,而是发布到论坛上。

    在 PGB 上升级到 cli-5.1.1 的注意事项
    http://community.phonegap.com/nitobi/topics/notes-for-upgrading-to-cli-5-1-1-on-pgb

    您可以在我的博客上阅读其他错过的主题
    (官方)论坛中Phonegap Build 技术支持的消息
    http://codesnippets.altervista.org/documentation/phonegap/bookmarks/fromSupport.html

    【讨论】:

    • 我认为问题出在白名单插件上。我已经安装了它,配置了新的要求,但仍然没有。
    • 嗯。另一个常见的错误是忘记捕获 deviceready 事件。我在你的代码中没有看到。老实说,您的代码非常干净,我假设您已经这样做了。您是否监听了 deviceready 事件?您可以在我的Generic Boilerplate Demo 中查看如何执行此操作
    • 另外,deviceready 必须是第一个被调用的东西。在包括 JQuery 在内的所有其他库调用之前!
    • 应该在每个页面调用deviceready事件还是在索引页面调用就足够了?
    • 我已经为每个页面添加了 deviceready,但仍然没有。有没有办法检查白名单插件是否有效?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多