2

我正在尝试使用嵌入标签并为 src 属性提供了一个动态 url

<embed src="{{mediaUrl}}" type="{{mimeType}}"  />

但是当页面打开时我得到

<embed src="unsafe:abc/def.mp4" type="video/mp4"  />
  • 我更改了 CSP 的权限,包括 media-src、child-src 等
  • 我授予了完整的权限(*)
  • 我删除了所有权限
  • 最后,我完全删除了“ember-cli-content-security-policy”,即使是在 unsafe: 前面也无法避免。

然而,删除“ember-cli-content-security-policy”并没有阻止 url,但 url 仍然带有不安全的前缀,因此视频没有加载

我还尝试了什么:

  • 使用带有标签的 ember 组件作为 embed 和 src 并键入属性绑定并使用 html.safestring。结果:不安全:仍然在前面

  • 在组件渲染后将 url 添加到 src 属性(即使不安全也没有显示视频:没有预先添加,因为我相信嵌入 src 标记无法更改)

  • 添加了整个后组件被撕裂,现在它可以工作了。

但这不是我想要的,我希望它成为模板的一部分而不是动态插入

4

1 回答 1

2

我有同样的问题,我通过使用这个助手解决了它:

// app/helpers/safe-string.js
import Ember from 'ember';

export function safeString(value) {
  return Ember.String.htmlSafe(value)
}

export default Ember.Helper.helper(safeString);

你现在可以这样做:

<embed src="{{safe-string mediaUrl}}" type="{{mimeType}}"  />
于 2016-12-09T20:05:42.387 回答