【问题标题】:Cordova : Content Security Policy directive: "media-src *"Cordova:内容安全策略指令:“media-src *”
【发布时间】:2018-02-14 14:03:57
【问题描述】:

这是我的元标记:

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

我正在使用此元标记在端口上调用服务器的 socket.io.js 文件,例如:

<script src="https://example.co:3344/socket.io/socket.io.js"></script>

这是用于 WebRTC (rtcmulticonnection),所以我的流事件触发并流创建媒体:

rtcMultiConnection.onstream = function(event) {
    if (event.stream.getVideoTracks().length) {
        $('.users-container').append(event.mediaElement);
    }
}

出现错误:

拒绝从“blob:http://localhost:8000/74677955-8811-43d0-bf30-2362208364d7”加载媒体,因为它违反了以下内容安全策略指令:“media-src *”。

它适用于 Mozilla Firefox,但不适用于 Android、Chrome 浏览器和 IOS。

编辑

AndroidManifest 权限:

<uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.MICROPHONE" />
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

我看不到安卓错误。

【问题讨论】:

    标签: cordova content-security-policy


    【解决方案1】:

    在您的元标记和通配符中尝试“media-src blob:”:

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

    https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/media-src

    【讨论】:

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