问题直译:“显示了临时报文头”
几种可能的原因:
- 跨域请求被浏览器拦截
- Chrome 浏览器插件拦截
- 服务器出错或者超时
- 请求的数据采用了缓存,并没有发送请求
- 后端服务器 Controller 的接口地址上没有添加
@ResponseBody
注解,导致接口未对外输出响应信息,也就意味着该接口不存在; - 在filter中设置请求头的时候,没有加入content-type这个请求头,导致前端传不了json数据,因为浏览器是根据option返回的结果来确定请求参数的,所以前端浏览器发送option时,后端response的Access-Control-Allow-Headers中没有content-type,导致浏览器post请求content-type,被认为是非法的,直接浏览器拦截了(浏览器和postman这些区别就在于,浏览器在正式请求之前会发送一个option试探,通过option试探来确定需要的请求参数)。正确的设置应该为
response.setHeader("Access-Control-Allow-Origin", origin)