通过XMLHttpRequest上载文件不适用于Microsoft Edge,但适用于其他应用程序
Upload file by XMLHttpRequest does not work with Microsoft Edge, but others
此java脚本代码适用于除Microsoft Edge之外的其他浏览器,在调用send(file)方法后,不会发送请求。
this.uploadFile = function (file, index, filesStorage) {
try {
if (file == undefined || file == null) { return; }
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.hasLoaded = false;
// Update progress bar
xhr.upload.addEventListener("loadstart", function (event) { filesManager_5.startFileProgress(event, file.uid); }, false);
xhr.upload.addEventListener("progress", function (event) { filesManager_5.updateFileProgress(event, file.uid); }, false);
xhr.upload.addEventListener("loadend", function (event) { filesManager_5.endFileProgress(event, file.uid); }, false);
xhr.addEventListener("readystatechange", function (event) { filesManager_5.changeStateFileProgress(event, file.uid, this.readyState); }, false);
xhr.upload.addEventListener("error", function (event) { alert('Error!'); }, false);
//xhr.upload.addEventListener("abort", function (event) { alert('Abort!'); }, false);
xhr.open("post", "~/Html5UploadHandler.ashx", true);
xhr.setRequestHeader("Content-Type", file.type);
xhr.setRequestHeader("X-File-Name", file.name);
xhr.setRequestHeader("X-File-Type", file.type);
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
xhr.setRequestHeader('X-Upload-Id', GetUploadId());
this._fileRequests[file.uid] = xhr;
xhr.send(file);
} catch (e) {
alert(e);
}
};
在我更改到此后,它就可以工作了
var reader = new FileReader();
reader.onload = function(){
var arrayBuffer = this.result;
xhr.send(arrayBuffer);
}
reader.readAsArrayBuffer(file);
相关文章:
- AddEventListener适用于浏览器,但不适用于Android
- 在Firefox中使用锤子捏 错误地定向 - 适用于所有其他浏览器
- AngularJS:必需属性适用于某些字段,但不适用于其他字段
- JavaScript不显示剩余字符,但适用于其他页面
- Chrome壁纸API适用于某些图像,不适用于其他图像,没有明显的原因
- jQuery事件在Mozilla上不起作用,并且适用于其他浏览器
- 简单代码仅适用于某些编辑器,而不适用于其他任何地方
- javascript:表单不仅被IE取代,而且,它适用于所有其他浏览器
- 在backbonejs视图中,keypress/keyup/keydown事件是否仅适用于输入,而不适用于其他元素
- 滚动后删除锚链接-也适用于其他页面的链接
- jQuery.load不适用于IE(适用于所有其他浏览器)
- 点击关闭Div不适用于Chrome,但适用于所有其他浏览器
- 为什么这个正则表达式替换不适用于JavaScript,而只适用于其他引擎
- IE抛出JavaScript错误(适用于其他浏览器)
- IE无法加载JSON并尝试下载根文件!(我正在遵循一个适用于所有其他浏览器的教程)
- MDL模态按钮适用于一张卡,但不适用于其他卡
- 如何调整空格键和回车只适用于第三个按钮,不适用于任何其他按钮
- 革命滑块是完全灰色的,不工作.但也适用于其他主题
- 简单展开(JQuery)不适用于InternetExplorer11,但适用于其他浏览器
- 通过XMLHttpRequest上载文件不适用于Microsoft Edge,但适用于其他应用程序