您现在的位置是: 首页> 前端问题 > 正文

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

时间: 2024-09-03 15:47:08 来源:网络 作者:自由 分类:前端问题
简介:

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

一、问题描述

最近做项目时在使用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) {//服务器响应失败处理函数
    }
});

标签:

文章声明
版权声明:本文为作者原创,仅用于本站访客学习、研究和交流目的,未经授权禁止转载
了解 作者

一个90后草根站长!13年入行。一直潜心研究技术,一边工作一边积累经验,分享一些个人后端技术(java、python、c#、php等),以及前端相关等心得。