【发布时间】:2015-04-12 14:48:52
【问题描述】:
当使用 content-security-policy 时,我尝试使用 window.URL.createObjectURL 在 Chrome 41(测试版)中遵循流程,我收到如下错误:
拒绝从“blob:http%3A//localhost%3A7000/f59612b8-c760-43a4-98cd-fe2a44648393”加载插件数据,因为它违反了以下内容安全策略指令:“object-src blob://* "
使用限制 object-src 或其他 default-src 的内容安全策略,可以像这样重现问题(使用 jQuery 方便):
blob = new Blob(
["%PDF-1.\ntrailer<</Root<</Pages<</Kids[<</MediaBox[0 0 3 3]>>]>>>>>>"],
{ type: "application/pdf" })
$("<embed>").attr("src", window.URL.createObjectURL(blob))
.appendTo(document.body)
它似乎来自the spec that this should work,就像它对data://* 一样。我也试过blob、blob:、blob:*、blob:http*、blob:http:*、blob:http://*,但无济于事。
object-src * 有效,但出于明显的原因是不可取的。
有没有人通过内容安全策略成功地让 Blob 加载?这是上游的问题,还是我忽略了什么?
【问题讨论】:
标签: google-chrome blob content-security-policy