带有phonegap问题的angular-google-analytics"拒绝加载脚本"

时间:2015-08-28 16:28:12

标签: javascript angularjs cordova google-analytics meta-tags

我有谷歌分析的问题,我正在使用这个角度插件angular-google-analytics。 我看到了这个错误:

Refused to load the script 'http://www.google-analytics.com/analytics.js' because it violates the following Content Security Policy directive: "default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'". Note that 'script-src' was not explicitly set, so 'default-src' is used as a fallback

我注意到当我从标题中删除此phonegap元标记时,我没有收到此错误

<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 *">

我不知道这个元标记的用途或重要性。 ?

错误消失后的任何方式,我都看不到实时视图中的任何内容

gameApp.controller('MainController', function($scope, $location, Analytics) {
$scope.$on('$routeChangeStart', function(next, current) { 
    Analytics.trackPage($location.path());
 });
});
你可以帮我解决这个问题吗? 谢谢

1 个答案:

答案 0 :(得分:0)

此标记对于防止XSS或恶意的“外国人”非常重要。脚本。

<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 *">

您是否尝试将以下内容插入上述内容属性:

script-src 'self' https://www.google-analytics.com/analytics.js 'unsafe-inline' 'unsafe-eval';

通过将其特意列入白名单,您应该可以加载它。

在我的角度应用程序中,我使用以下代码:

$rootScope.$on('$stateChangeSuccess', function(){
  $window.ga('send', 'pageview', $location.$$path);
});

阅读

https://content-security-policy.com

https://www.w3.org/TR/2012/CR-CSP-20121115/#introduction