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的主要内容,如果未能解决你的问题,请参考以下文章