第一次设置 ngcordova 时出错

Posted

技术标签:

【中文标题】第一次设置 ngcordova 时出错【英文标题】:getting error to setup ngcordova firsttime 【发布时间】:2015-07-01 02:57:45 【问题描述】:

我正在使用以下代码:

<html>
<head>
    <!--
    Customize this policy to fit your own app's needs. For more guidance, see:
        https://github.com/apache/cordova-plugin-whitelist/blob/master/README.md#content-security-policy
    Some notes:
        * gap: is required only on ios (when using UIWebView) and is needed for JS->native communication
        * https://ssl.gstatic.com is required only on android and is needed for TalkBack to function properly
        * Disables use of inline scripts in order to mitigate risk of XSS vulnerabilities. To change this:
            * Enable inline JS: add 'unsafe-inline' to default-src
    -->

    <meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">
    <meta name="format-detection" content="telephone=no">
    <meta name="msapplication-tap-highlight" content="no">
    <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
    <link rel="stylesheet" type="text/css" href="css/index.css">
    <script type="text/javascript" src="js/angular.min.js"></script>
    <script type="text/javascript" src="js/ng-cordova.min.js"></script>
    <script type="text/javascript" src="cordova.js"></script>

    <script>
var app = angular.module('myApp', ['ngCordova']);
app.controller('MyCtrl', function($scope, $cordovaDevice) 

 alert("fgf);
)
</script>
</head>

<div ng-app="myApp" ng-controller="myCtrl">

  k
</div>

</body>
</html>

在运行时我遇到了错误。请指导我如何解决它。

"[INFO:CONSOLE(47)] "收到事件:deviceready",来源:file:///android_asset/www/js/index.js (47) 04-23 11:06:19.444 17043-17043/com.example.hello I/chromium: [INFO:CONSOLE(41)] "拒绝执行内联脚本,因为它违反了以下内容安全策略指令:"default-src' self' 数据:gap: https://ssl.gstatic.com 'unsafe-eval'"。请注意,'script-src' 没有明确设置,因此 'default-src' 用作后备。 ",来源:file:///android_asset/www/my.html (41) 04-23 11:06:19.524 17043-17043/com.example.hello I/chromium: [INFO:CONSOLE(35)] "未捕获的错误: [$injector:modulerr] http://errors.angularjs.org/1.3 .14/$injector/modulerr?`在此处输入代码`p0=myApp&p1=Error%3A%20%5B%24injector%3Anomod%5D%20http%3A%2F%2Ferrors.angularjs.org%2F1.3.14%2F%24injector %2Fnomod%3Fp0%3DmyApp%0A%20%20%20%20at%20Error%20(......1)",来源:file:///android_asset/www/js/angular.min.js ( 35)"

【问题讨论】:

尝试添加更多信息而不仅仅是代码 当我只包含 Angular js 时,没有 ngCordova 模块它工作正常。 当我包含 angular js 和 cordova js 然后运行时 cordova.js 给出错误“未找到元标记 .. 安全白名单 porliy 相关问题”然后我在 angular js 给出提到的错误之后使用元标记 Content-Security-Policy 似乎被配置为阻止内联脚本。删除该行并再次测试。 【参考方案1】:

评论中的最后一个项目符号建议您将内容安全策略更改为

 <meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">

允许内联脚本。

【讨论】:

【参考方案2】:

当我添加 http json 请求调用时,我遇到了同样的问题,它总是出现错误情况。所以我只是从 html 中删除下面的标签。

 <meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">

 <meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *"> 

它对我有用..!!

【讨论】:

【参考方案3】:

我也有这个问题,我在default-src 解决了这个问题之后添加了'unsafe-inline'。 像这样

<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">

【讨论】:

以上是关于第一次设置 ngcordova 时出错的主要内容,如果未能解决你的问题,请参考以下文章

在 Pentaho Kettle 中设置初始存储库时出错

第一条消息总是出错

WAMPServer 安装 - phpMyAdmin 登录时出错 - 错误 #1193

在IOS中检查Documents目录的子目录时出错

Wordpress - 建立数据库连接时出错 - 全新 WP 安装

将多个手势识别器分配给 AnyObject 时出错