1

使用 javascript,我如何预加载没有路径源但有 datauri 作为其源的图像?

我有这样的事情:

var image = new Image();
image.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==";

我想在 https 页面上执行此操作,但收到一个错误,即我在页面上混合了安全和非安全项目。任何想法为什么会出现这种情况以及我可以解决此问题的任何方法?

4

1 回答 1

2

每当您引用任何异地或非 https 文件时,都会发生不安全错误。这就是为什么您通常希望通过引用链接到图像/CSS/etc(包含“http://”的绝对路径会给出相同的错误)。根据某些浏览器的安全策略,使用 base64 datauri 创建的图像被视为外部且不安全的。

编辑:此外,我建议您阅读以下内容:

https://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html

它讨论了一个关于如何指定哪些类型的东西被视为安全和不安全的建议。具体来说,尝试添加以下标头:

X-Content-Security-Policy: allow 'self'; img-src data:
于 2011-08-31T23:32:40.760 回答