摘要:最近编写了一个上传文件的功能,支持ie9+.所以选用了 jQuery-File-Upload。但是在IE9测试时,产生了麻烦的问题,在这里记录一下。
最近编写了一个上传文件的功能,支持ie9+.所以选用了 jQuery-File-Upload。但是在IE9测试时,产生了麻烦的问题,在这里记录一下。
头文件问题,
股务端接口要返回text/html文件。因为ie9不认识application/json格式的。在IE9下面,会弹出下载的问题。
在我修改过程中,后端同学说改了,然后我很信任它。然后改过后,还是有下载的问题。不知道所措,最后发现是后端没有修改成功。。。
JS代码设置部分。
首先,在文件的加载上。代码如下
const fileList = ((pathFix) => {return [
`${pathFix}/jqueryuploader/vendor/jquery.ui.widget.js`,
`${pathFix}/jqueryuploader/jquery.fileupload.js`,
...(laterIE ? [`${pathFix}/jqueryuploader/cors/jquery.xdr-transport.js`]
: []),
`${pathFix}/jqueryuploader/jquery.iframe-transport.js`,
];
})('/static/static');
上面是我下载的文件列表。在ie9下面,多加载了一个jquery.xdr-transport.js文件。
其次,是在配置方面
$(fupload).fileupload({
url: server.dataPoiUpload,
dataType: 'json',
autoUpload: true,
formData: {geotable_id: geotableId, sn: mStore.getSN(), user: mStore.getUsername()},
sequentialUploads: true,
done: function(e, cdata) {
var result = cdata.result;
const data = ((rdata) => {
return typeof rdata === 'object' ? rdata : JSON.parse(rdata);
})(result);
},
progressall: function(e, data) {
console.log('update progressall');
var progress = parseInt(data.loaded / data.total * 100, 10);
self.setState({
'progress': progress
});
},
change: function() {
self.setState({
status: 'updating',
uploadBtn: false
})
console.log('upload change');
},
success: function(cdata, status, object) {
const data = ((cd) => {
return typeof cd === 'object' ? cd : JSON.parse(cd);
})(cdata);
}
}).error(function() {
console.log(arguments, 'error');
});
上面主要是在配置方面。主要注意几点:1,设置dataType. 2, success返回值时,chrome与ie返回值格式不一样。这里做一判断
希望这篇文章可以帮助到你。总之,同学们,你想要的职坐标IT频道都能找到!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号