Ajax响应对于word文档为空,对于txt和pdf则为空
Ajax response is null for word docs, fine for txt and pdf
我正试图使用ajax请求通过二进制数据获取一个文件,然后将其转换为base64。这适用于txt和pdf文件,但当我尝试docx时失败了。响应为null,ResponseText为DOMExpection。如果我直接在chrome中访问url,它会下载文件fin。docx文件有什么特别之处吗?这是我的密码。
function _arrayBufferToBase64(buffer) {
var binary = '';
var bytes = new Uint8Array(buffer);
var len = bytes.byteLength;
for (var i = 0; i < len; i++) {
binary += String.fromCharCode(bytes[i]);
}
return window.btoa(binary);
}
function download(fileName, fileDownloadLocation) {
var oReq = new XMLHttpRequest();
oReq.onload = function(data) {
var base64str = _arrayBufferToBase64(this.response);
//Do custom stuff here
};
oReq.responseType = "arraybuffer";
oReq.open("get", fileDownloadLocation, true);
oReq.send();
}
我也尝试过使用Accept头,但没有成功。我在开门后马上打电话给你。
oReq.setRequestHeader('Accept', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/octet-stream,text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8');
事实证明,只有当文件长度为0时才会发生这种情况。
相关文章:
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 通过php页面中的js强制下载txt
- 对于加载时间过长的循环来说是巨大的
- 对于loop.if-仅在经过所有间隔后返回true
- 是否“;对于的“;循环迭代遵循JavaScript中的数组顺序
- 在量角器中创建一个.txt错误输出文件是手动的,而不是控制台错误
- 对于这种情况,函数Reduce CouchDB
- 对于如何在没有modernizr的情况下用边界半径的功能检测检查来替换我的旧浏览器检查
- 对于每个json结果,使用类jquery添加css
- 对于循环-在循环内部循环,用于获取带有ascii值的字母表
- “;对于“;内部”;setInterval”;
- 对于Ajax调用,为什么innerHTML没有显示在IE中
- 如何从txt文件中获取要在javascript数组中使用的对象
- 对于每个输入类型,使用javascript获取值
- '对于'循环,替换span标记的问题
- 将变量传递到.txt文件
- JQuery-在'对于'陈述
- Javascript”;对于循环“;i-5和i=-5之间的差异
- $.每个jquery循环打印一个“;未定义的“;对于getJSON请求后的每个元素,网格数据都会完美地打印出来
- Ajax响应对于word文档为空,对于txt和pdf则为空