【问题标题】:javascript Blob Object is undefinedjavascript Blob 对象未定义
【发布时间】:2013-01-16 20:52:19
【问题描述】:

我正在尝试通过 XHR post 下载内容并将其保存在本地,因此我尝试将接收到的数据作为文件恢复到 blob 对象中,但是触发了 jscript 错误,提示 blob 未定义!

window.URL = window.URL || window.webkitURL;
$.ajax({
url: 'CreateFile.aspx',
type: 'POST',
data: { 'param1': "verylargedata1",
    'param2': "verylargedata2"
},
headers: {
    "accept": 'application/octet-stream',
    "content-type": 'application/x-www-form-urlencoded',
    "X-RequestDigest": $("#__REQUESTDIGEST").val()
},
error: function (xhr, ajaxOptions, thrownError) {
    alert(xhr.status);
    alert(thrownError);
},
success: function (data) {
    var blob = new Blob(data, { 'type': "application/octet-stream" }); //Jscript error undeined blob
    var url = window.URL.createObjectURL(blob);
    iframe.src = encodeURI(url);
}
});

【问题讨论】:

    标签: javascript asp.net jquery blob jscript


    【解决方案1】:

    许多浏览器不支持它。我猜您使用的是 IE9 或更低版本,因为它在错误消息中显示 JScript。 IE10有一些支持。

    查看当前浏览器支持:http://caniuse.com/#search=blob

    【讨论】:

    • 是的,你是对的,但如果我可能会问:你知道在成功函数中恢复接收数据的任何其他方法(作为文本文件写入 CreateFile.aspx 中的响应对象)或者直接下载,PS:我不能使用iframe.scr(url)或者window.location(因为url大小超出限制)
    • 为什么不直接将表单发布到 iframe?
    • 因为我传递的数据的大小非常大,并且 iframe 中的 url 是有限的
    • 我为正在流浪的人找到了这个答案stackoverflow.com/questions/7578124/…
    猜你喜欢
    • 1970-01-01
    • 2017-08-20
    • 1970-01-01
    • 1970-01-01
    • 2020-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-11
    相关资源
    最近更新 更多