上传文件设置返回类型后,解析400返回的提示信息

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了上传文件设置返回类型后,解析400返回的提示信息相关的知识,希望对你有一定的参考价值。

参考技术A /**

* 上传

* arraybuffer类型可以转为对象

*/

export const upLoadFile = (url, data) =>

  return axios.post(process.env.VUE_APP_URL + url, data,

    headers:

      'Authorization': sessionStorage.getItem('authorization'),

      'Content-Type': 'multipart/form-data',

    ,

    responseType: 'arraybuffer',

  ).then(res=>

    return Promise.resolve(res);

  ).catch(err=>

    //解析返回值

    let enc = new TextDecoder('utf-8');

    let error = JSON.parse(enc.decode(new Uint8Array(err.response.data)));

    return Promise.reject(error.message);

  );

jQuery.form.js 使用ajaxForm、ajaxSubmit提交表单上传文件后服务器端返回json数据IE浏览器无法解析。

使用struts2,使用ajaxSubmit对于图片上传的处理,在火狐中是好的,可是在IE中会提示“Internet Explorer已经组织从此站点下载文件到您的计算机”需要我单击下载。返回的是一个JSON对象。
var option =
url : "photooperate_add",
type: "post",
success : function(data)
loadData(albumpk);
exit_upload();
tell(data.message);

;
$("#form_upload").ajaxSubmit(option);

这是我配置的,在Struts.xml中配置是正确的,因为火狐是绝对可以的,但在IE就提示要下载,头大。请高人来显神通,有没有比较好的办法,能够简便解决该问题。
如果您的回答解决了我的问题,我再给您追加30分。

参考技术A 我给你出个招,我在struts1里面用的很好,你把运行完action得到的json对象保存在session里面,然后让这个action跳转到一个jsp页面,之后在这个jsp页面中把他取出来,这样就可以把json对象传给ajax了,说明白了吗? 参考技术B http://forum.jquery.com/topic/file-upload-ajaxsubmit-sends-response-to-wrong-window-in-ie本回答被提问者采纳 参考技术C 你好!

简单点的方法就在注册表中添加关于JSON的MIME类型支持。

=======================================

以上是关于上传文件设置返回类型后,解析400返回的提示信息的主要内容,如果未能解决你的问题,请参考以下文章

目录路径检测解析绕过上传漏洞 啥意思

Juploader 1.0 谷歌(chrome)浏览器中成功上传文件后返回信息异常

DVWA—File Upload(文件上传)

jQuery.form.js 使用ajaxForm、ajaxSubmit提交表单上传文件后服务器端返回json数据IE浏览器无法解析。

ajaxFileUpload上传文件成功后却无法解析服务器返回的json数据

iview实现文件上传 限制上传格式大小