IE8、9、10、11下 ajaxFileUpload 上传文件成功后,出现下载文件对话框

我们在js开发中,为了实现文件上传功能,通常使用jquery 的 ajaxfileupload.js 文件上传组件,但是在使用中不免会碰到各种问题,今天就是作者在IE中遇到的一个问题。

jesen
1
2022-07-28 21:20:52
文档目录
我的书签
 

IE8、9、10、11下 ajaxFileUpload 上传文件成功后,出现下载文件对话框

一、问题描述

最近做项目时在使用ajaxfileupload.js上传文件时(后台使用的spring boot),接收的是JSON格式的数据,但是奇怪的是在IE(ie8、ie9、ie10、ie11)中执行后却出现提示下载文件对话框(然而在其他浏览器中一切正常),下载这个文件后,里面的内容就是在后台控制器中返回的json数据。

二、问题解决

1.修改后台控制器方法的路由映射:
@RequestMapping(value = "/inventory/upload",produces = "text/html; charset=utf-8")
2.同时将前台ajax响应数据类型设置为text,然后在回调函数中手动将其转换为JSON格式:
$.ajaxFileUpload({
    url: '/v_factory/inventory/upload', //用于文件上传的服务器端请求地址
    secureuri: true, //是否需要安全协议,一般设置为false
    fileElementId: "fileInfo", //文件上传域的ID
    data:{
        "uid":uid,
        "type":2,
        token:getFToken()
    },
    dataType: 'text', //返回值类型 一般设置为json
    success: function (data, status) {  //服务器成功响应处理函数
        data = $.parseJSON(data);
    },
    error: function (data, status, e) {//服务器响应失败处理函数
    }
});

友情提示