Phonegap 无法加载远程内容
Posted
技术标签:
【中文标题】Phonegap 无法加载远程内容【英文标题】:Phonegap can't load remote content 【发布时间】:2015-09-24 23:19:30 【问题描述】:我在 PhoneGap 中构建了一个应用程序。我手动编码应用程序并将其上传到 phonegap 构建。 我目前仅在 android 上对其进行测试。 我的应用程序使用 Jquery Ajax 从我的服务器加载一些内容。在过去的 10 天里,这非常有效。今天,它刚刚停止。
我的应用程序无法再从任何服务器加载任何内容。这包括我的样式表(是的,我更喜欢将它托管在服务器上)和 Google 托管的 jquery。我通过添加 jquery.min.js 和客户端 style.css 文件解决了这些文件问题,但是我非常依赖的 $.ajax 调用不能成为客户端。
我的 config.xml 文件一直有
<access origin="*" />
相关文件中包含以下代码:
<body onLoad="loaded();"> .........
function loaded()
alert("function called.");
$.support.cors=true;
现在失败的代码如下所示:
var request = $.ajax(
url: "http://myserver/somefile.php",
method: "POST",
data: variable:value,
dataType: "html"
);
request.done(function( msg ) alert(msg);
还有人愿意来一趟吗?
【问题讨论】:
当您使用调试器测试应用程序时,您是否在 adb 控制台日志中收到任何错误? 每当我运行 weinre 调试时,我只看到“目标:无”并且页面标题是“目标未连接”。所以我没有能力使用构建调试工具进行调试 愚蠢的想法:尝试在您的 ajax 调用和 request.done 周围放置一个 try catch 并显示 alert 。可能有例外 谢谢,@Dilberted,作为您的建议,我刚刚添加了一些错误捕获。我得到一个非常通用的错误响应“错误”似乎无法获得错误代码。 您是否尝试将整个异常对象记录在警报消息中或仅记录属性。尝试警报(JSON.stringify(e)); -- e 是异常对象 【参考方案1】:您是否安装了 cordova-whitelist-plugin 并在您的应用中添加了内容安全策略元标记?如果不是,那可能就是问题所在。 Cordova 4.0 或更高版本(Android 和 ios)需要此插件才能访问任何非 file:// URL。 https://github.com/apache/cordova-plugin-whitelist#content-security-policy
【讨论】:
@GRY,按照 Josh 的说法,这里有更多链接可以帮助您使用 white-list 插件。阅读 #10 of Top Mistakes by Developers new to Cordova/Phonegap 好的,所以这有点尴尬,但我不知道如何将这个插件添加到我的应用程序中。我从 GIT 下载了源代码,但似乎没有任何添加插件的示例。因为我使用的是 PhoneGap Build 服务,所以我的其他插件只是在我的 config.xml 文件中显示为以上是关于Phonegap 无法加载远程内容的主要内容,如果未能解决你的问题,请参考以下文章
无法从资产路径在 phonegap 项目中使用 jquery 加载 xml 文件
无法加载 phonegap 地理定位插件。将.jar 添加到类路径?