上传组件uploadify在spring中返回406 / Not Acceptable 问题解决

这个问题在chrome中正常.在火狐和ie中就会报这个错误.

原因就是chrome的accept是*/*

火狐和ie的accept是text/*

但是spring的accept清单中是没有text/*的这个处理器的.所有就返回406了.

这个问题百度过.都是添加什么json的配置bean.不是我想要的.我也没有用到spring的那个对象转json.也不想这么干.

没办法只能自己看源码了.以及百度一些相关源码的解释.

关键就是这个header解析不了.一开始就想能不能把request的accept给改变了.

结果这个request的头是不能被改的.....好无奈只能看.不能改.

还好在源码中找到了一个突破口.

就是划线的这句.这个得到的结果就是text/*

于是在Controller中加一句这个.算是把spring骗了过去.但是requestMapping中设置的application/json  也就不起作用了.反正response变成了text/plain.还好前台解析做过处理.也没有影响

request.setAttribute(HandlerMapping.PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE,null);

对了.其实一开始是requestMapping也要改一下的.要不请求进不来

@RequestMapping(value = "uploadFile",produces = "application/json;charset=utf-8",headers = "accept=text/*")

 关键是那个headers.

好了.至此这个问题就愉快的解决了.

原文地址:https://www.cnblogs.com/lansehai/p/7283799.html