【问题标题】:The Content Security Policy 'default-src * data:;' was delivered via a <meta> element outside the document's <head>内容安全策略 'default-src * data:;'通过文档 <head> 之外的 <meta> 元素传递
【发布时间】:2016-09-23 09:40:17
【问题描述】:
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
    <meta http-equiv="Content-Security-Policy" content="default-src * data:; style-src * 'unsafe-inline'; script-src * 'unsafe-inline' 'unsafe-eval'">
    <script src="components/loader.js"></script>
    <script src="lib/angular/angular.min.js"></script>
    <script src="lib/onsenui/js/onsenui.min.js"></script>
    <script src="lib/onsenui/js/angular-onsenui.min.js"></script>

    <link rel="stylesheet" href="components/loader.css">
    <link rel="stylesheet" href="lib/onsenui/css/onsenui.css">
    <link rel="stylesheet" href="lib/onsenui/css/onsen-css-components.css">
    <link rel="stylesheet" href="css/style.css">
</head>

此“元”标记在 index.html 中有效,但在其他 .html 页面中无效。 我试图从这里更改 config.html

<allow-navigation href="*"/>

到这个。

<allow-navigation href="http://*/*"/>

我尝试更改元标记,但仍然收到此错误。

谁能帮帮我?提前致谢。

【问题讨论】:

  • “通过文档的&lt;head&gt; 之外的&lt;meta&gt; 元素传递”部分似乎意味着您在&lt;body&gt; 中而不是头部有一个&lt;meta http-equiv="Content-Security-Policy" &gt; 元素。它必须是头部元素的副本,或者文档中有其他元素(未在您的 sn-p 中显示)导致浏览器的 HTML 解析器在 @987654331 之前的某个时间点启动 &lt;body&gt; @。因此,您应该发布您的实际文档的完整源代码,以便这里的其他人可以检查它并查看原因。
  • 我的猜测是您正在将模板加载到导航器中,它们是单独的文件。那么我的猜测是你在这些文件中有元标记——你不应该有。这会导致这种情况。
  • 我同意 Munsterlander - 您收到的页面被插入到文档中作为某些温泉组件的子元素,而不是直接加载到浏览器中,所以当这些页面被加载时,它们实际上是放入具有该元标记的 index.html 中 - 因此在内部页面中省略它应该不是问题 imo。尝试删除 index.html 之外的所有元标记,你应该没问题。同样在其他页面中,您可以只放置内容,您不需要放置 html、head、body 等 - 只需放置您将用于 body 的 html :)

标签: cordova meta-tags onsen-ui content-security-policy monaca


【解决方案1】:

关于您的错误。我遇到了同样的错误,但这是因为我在测试过程中将 var_dump-ing 到&lt;head&gt; 上方的屏幕上。我想如果您在某个地方的元标记上方打印/回显/写入屏幕,也会出现类似的问题或错误。

【讨论】:

    【解决方案2】:

    我看到这个错误是因为我正在包含一个包含元标记的文件,并且文件上的 utf8 前缀导致了这个问题。像这样使用 IIS web.config 使其工作并且更容易管理更改然后包含

    <?xml version="1.0"?>
    <configuration>
      <system.webServer>
        <httpProtocol>
          <customHeaders>
            <!-- In Order for the Mobile App to Access Sota we need to remove the X-Fram-Options and fall back to the newer Content-Security-Policy we include /include/Content-Security-Policy-->
            <remove name="X-Frame-Options"/>        
            <add name="Content-Security-Policy" value="default-src 'self'; style-src 'self' 'unsafe-inline';  media-src *; script-src 'self' 'unsafe-eval' 'unsafe-inline'; img-src 'self'"/>
          </customHeaders>
        </httpProtocol>
      </system.webServer>
    </configuration>
    

    【讨论】:

      猜你喜欢
      • 2017-03-14
      • 2018-12-25
      • 2015-04-12
      • 2016-03-25
      • 2018-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多