这个问题在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.
好了.至此这个问题就愉快的解决了.