代码如下:
@Component
public class CorsFilter implements Filter {
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
HttpServletResponse response = (HttpServletResponse) res;
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers", "curUserId,token,platform");
chain.doFilter(req, res);
}
public void init(FilterConfig filterConfig) {
}
public void destroy() {
}
}
前端的html页面
$.ajax({
url:"http://localhost:8080/station/addA",
method: "POST",
contentType:'application/json',
data:JSON.stringify(site),
success:function(data){
console.log("获取响应成功")
}
})
测试发现前端报错
in firefox
Cors 预检响应的‘access-Control-Allow-Headers’,不允许使用头‘content-type’
Cors Missing Allow Header’
in chrome
修改:
注意配置中的
response.setHeader("Access-Control-Allow-Headers", "curUserId,token,platform");
添加content-type
response.setHeader("Access-Control-Allow-Headers", "content-type,curUserId,token,platform");