PhoneGap Android 设备就绪但没有 Ajax

Posted

技术标签:

【中文标题】PhoneGap Android 设备就绪但没有 Ajax【英文标题】:PhoneGap Android Device Ready but no Ajax 【发布时间】:2015-09-14 22:26:29 【问题描述】:

我想知道我的问题是否是我的 ajax 调用是 http,而不是 https。我必须用https调用还是可以用http调用?

我正在使用 PhoneGap cloud cli-5.2.0 (ios 3.9.1 / android 4.1.1 / Windows 3.8.1) 进行编译

我编译了我的包,将它安装在我的 Android Samsung 上,它启动了,我的 $.ajax 错误

errorThrown: 未定义 文本状态:错误 数据:"readyState":4,"responseText":"","status":404,"statusText":"Not Found"

有什么建议/想法吗?

我阅读了以下内容: jQuery Mobile + Phonegap on Android - no Ajax 但它已有两年历史,并且与旧版本的 phonegap 有关。

我的代码不需要特殊的魔法 - 我确实包含 phonegap.js 但我不使用 gps、相机、联系人等

使用下面的代码,我确实可以显示“设备就绪”和“文档就绪”。当我点击我的登录按钮 (id='demologin') 时,函数 DemoLogin() 被执行。

function onDeviceReady() 
    $("#demologin").on("click", DemoLogin );

    $("#demologin").after("<h3>deviceready</h3>");
    return true;


    $(document).ready(
    function()
    
        document.addEventListener("deviceready", onDeviceReady, false);
        $("#demologin").after("<h3>document ready</h3>");
    );

如果我猜的话,ajax“404”让我相信它调用了一个不存在的 URL,因此我想知道 Android 是否希望我调用 https 而不是 http。我遇到的问题是代码可以在 iOS 上运行,所以我原以为 PhoneGap 的魔力会让我相信,如果它在一个上运行,它就会在另一个上运行。

感谢所有帮助!

【问题讨论】:

【参考方案1】:

我还在 phonegap 应用程序上使用 ajax,它运行良好。你可以调用http。我认为您调用的网址不存在或可能存在连接问题,例如关闭数据时。

【讨论】:

我知道 URL 是有效的,因为 1) 该应用程序在 iOS 上运行良好,但在 Android 上却不行 2) URL 写在一个变量中,我在屏幕上显示该变量(我调试的一部分努力)时执行 $.ajax 完整部分。【参考方案2】:

这是一个老问题,但可能该解决方案会帮助正在谷歌搜索它的人。

将此代码添加到您的 config.xml 文件中:

<gap:plugin name="cordova-plugin-whitelist" source="npm" />
<access origin="*" />

因为新版 Cordova 需要白名单插件。

【讨论】:

以上是关于PhoneGap Android 设备就绪但没有 Ajax的主要内容,如果未能解决你的问题,请参考以下文章

PhoneGap Build - 为 Android 设备设置启动画面

Phonegap构建地理位置不起作用

jquery mobile 功能在设备准备好之前运行

在 Android 设备上运行 phonegap 应用程序

设备就绪 ios 不工作

Phonegap混合应用程序 - 设备兼容性