我正在使用Ionic中的一些小应用程序,我无法让它在我的Android设备上运行,首先我得到了错误:"无法加载资源"用404响应,然后我安装了Cordova白名单插件,添加了
<access origin="*"/>
<allow-navigation href="*"/>
<allow-intent href="*"/>
在我的config.xml文件中,我在html中添加了元标记
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'">
有了这个元标记,我收到了一个错误,我违反了&#34; script-src&#39; self&#39;&#34;
的政策所以我改成了:
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src * 'unsafe-inline'; script-src * 'unsafe-inline' 'unsafe-eval'">
任何人都知道我做错了什么,因为它真的令人沮丧:(
应用程序在浏览器中正常运行,并且API正常运行,您可以在此处进行测试:http://sremskevesti.rs/wp-json/posts
答案 0 :(得分:2)
FWIW政策令人困惑,很多人都迷失了。我正在写博客文章。这是我的raw notes。
另一种选择就是快速修复 - 但要知道此快速修复会消除white-list
的所有需求。这会创建一个您可能不希望通过的security issue。
快速修正将此添加到config.xml
PHONEGAP BUILD ONLY
<preference name="phonegap-version" value="3.7.0" />
长期答案:
来自Top Mistakes by Developers new to Cordova/Phonegap你已经点击了:
对于#6&amp; #7
使用CLI版本,如果您没有为您的平台分配版本,或者在&#39;&#39; Phonegap Build&#39;&#39;如果你没有在config.xml中设置phonegap-version,你将获得最新版本。如果运气好,您的程序就会按预期运行。如果你不幸运,你会得到一系列级联错误。
幸运的是,对于我们所有人来说,Holly Schinsky写了一篇很好的博文来解释这一切:
Cordova / PhoneGap版本混淆
http://devgirl.org/2014/11/07/cordovaphonegap-version-confusion/
#10
这个相对*新*要求意味着 - 要访问网络上的任何网站或资源,您必须使用白名单和白名单插件。如果您使用cordova-android@4.0.0或更高版本,此要求将生效;包括cli-5.1.1和cli-5.2.0。但是,如果您的版本在4.0.0之前,让我们说3.5.0或3.7.0,那么您将不必须添加白名单要求。
要明确,&#34;白名单&#34;已经存在了一段时间,但插件和要求是非常新的。正如您所期望的那样,&#34;白名单&#34;添加了,defacto开放访问功能已被弃用。或者说另一种方式,事实上开放访问功能已被计划并计划被淘汰。此更改标志着删除开放访问功能的一个步骤。
此外,内容安全策略(CSP)已经吸引了众多开发人员 - 因为它的公开性很差。 根据您的使用情况和您使用的Phonegap版本,CSP需要进入您使用的每个HTML页面,就像您必须等待“设备准备”一样。但是,有些情况根本不需要它。文档让一些人感到困惑,请仔细阅读。文档隐藏在许多最新文档页面的底部。
最后,Raymond Camden在他的博客中指出LARGE change in policy starting with Cordova 5
相关链接
Phonegap Build Forum:Notes for upgrading to cli-5.1.1 on PGB,现在需要白名单