2015-11-24 65 views
0

我使用下面的筛选,明确设置内容类型为响应应用程序/ JSON:无法设置内容类型/ MIME类型的Java Servlet

@Override 
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { 
    HttpServletResponse response = (HttpServletResponse) servletResponse; 
    response.setHeader("Access-Control-Allow-Origin", "*"); 
    response.setHeader("Access-Control-Allow-Methods", "POST, GET, PUT, OPTIONS, DELETE"); 
    response.setHeader("Access-Control-Max-Age", "3600"); 
    response.setContentType("application/json"); 
    response.setCharacterEncoding("utf-8"); 
    response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); 
    filterChain.doFilter(servletRequest, servletResponse); 
} 

它不工作,但是,并且在浏览器中请求时的内容类型是text/html。其他头文件工作正常。

+4

情况下游到'HttpServletResponse'什么? –

+0

'filterChain'覆盖了标题吗?如果你在'doFilter'之后移动'setContentType'会怎么样? –

+0

响应由Spring @RestController分派。将setContentType移动到方法的底部并不会改变结果。 – Soggiorno

回答