【发布时间】:2015-09-04 08:51:49
【问题描述】:
我使用 XMLHttpRequest 使用此代码从数据 URI 生成 Blob:
function dataUrlToBlob(dataUrl, callback) {
var xhr = new XMLHttpRequest;
xhr.open( 'GET', dataUrl);
xhr.responseType = 'arraybuffer';
xhr.onload = function(e) {
callback( new Blob( [this.response], {type: 'image/png'} ) );
};
xhr.send();
}
用法:
dataUrlToBlob('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQIW2NkAAIAAAoAAggA9GkAAAAASUVORK5CYII=', callback);
在除 Safari 之外的所有浏览器中一切正常。它会抛出这样的错误:
[错误] XMLHttpRequest 无法加载数据:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQIW2NkAAIAAAoAAggA9GkAAAAASUVORK5CYII=。仅 HTTP 支持跨源请求。
问题是,有什么方法可以让这种方法在 Safari 中运行?
【问题讨论】:
-
你解决了吗?我面临着完全相同的问题
-
这里也面临同样的问题。很想知道你是否能够解决这个问题。
标签: javascript safari xmlhttprequest