在base64图像上交叉原点

时间:2014-07-28 08:34:00

标签: javascript angularjs google-chrome

我试图显示base64编码的图像(html是一个AngularJS指令模板):

<div id="iframe" ng-hide="loading"></div>
<img ng-show="loading" id="tweetLoader" src="data:image/gif;base64,R0lGODlhIAAgAPYAAP///wAAAP...AAAAAA==" >
<div class="error" ng-show="errorMessage">{{errorMessage}}</div>

我删除了部分base64代码,因为它很长,如果它是绝对需要的,我会添加它。
Chrome(在firefox中没有发生这种情况)向我显示以下错误:

  

XMLHttpRequest无法加载   图像/ GIF; BASE64,R0lGODlhIAAgAPYAAP /// wAAAP ... AAAAAA ==。   只有HTTP支持跨源请求。

此外,每次都没有显示此错误..这似乎很随意。

我正在使用AngularJS 1.2.21

是铬虫还是什么?

感谢。

2 个答案:

答案 0 :(得分:1)

我没有标记为重复,因为它不是同一个问题,但我认为答案可以帮助你 chrome.webRequest cross-origin disallowed scheme on redirect to data:

  

您的请求失败,因为数据:直到Chrome 39才支持通过XMLHttpRequest访问-URI。(从Chrome 39开始,您将能够使用XMLHttpRequest获取数据:-URIs,有关详细信息,请参阅http://crbug.com/308768

答案 1 :(得分:0)

如果您正在使用Chrome安全限制,以防止它从网址加载图片,那么只需添加此属性即可正常工作

img.crossOrigin = " ";

对于chrome alse来说没问题