解决jQuery-File-Upload在IE9下的问题
阿萨 2018-03-23 来源 :网络 阅读 1210 评论 0

摘要:最近编写了一个上传文件的功能,支持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频道都能找到!

本文由 @阿萨 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程