Spring ';访问控制允许原点';标题包含多个值-角度2&;春季MVC
我在多个angular客户端上工作,这些客户端使用相同的Restful API,来自不同的域名,我在服务器端进行了配置,当只有一个客户端时,它就工作了,但是在调整了CorsFilter组件之后,我的angular客户端抛出了这个消息 访问控制允许来源标题包含多个值Spring ';访问控制允许原点';标题包含多个值-角度2&;春季MVC,spring,angular,spring-mvc,filter,cors,Spring,Angular,Spring Mvc,Filter,Cors,我在多个angular客户端上工作,这些客户端使用相同的Restful API,来自不同的域名,我在服务器端进行了配置,当只有一个客户端时,它就工作了,但是在调整了CorsFilter组件之后,我的angular客户端抛出了这个消息 访问控制允许来源标题包含多个值 public class CorsFilter implements Filter { public CorsFilter() { } @Override p
public class CorsFilter implements Filter {
public CorsFilter() {
}
@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
throws IOException, ServletException {
HttpServletResponse httpResponse = (HttpServletResponse) res;
httpResponse.setHeader("Access-Control-Allow-Origin", "http://localhost:5200, http://localhost:4200");
httpResponse.setHeader("Access-Control-Allow-Methods", "POST, GET, PUT, OPTIONS, DELETE");
httpResponse.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
httpResponse.setHeader("Access-Control-Allow-Credentials", "true");
httpResponse.setHeader("Access-Control-Max-Age", "4800");
chain.doFilter(req, res);
}
@Override
public void destroy() {
}
@Override
public void init(FilterConfig arg0) throws ServletException {
}
}
来自angular 2服务的Ajax调用
login(form) {
var objectToSend = "j_username="+form.j_username+"&j_password="+form.j_password;
let headers = new Headers(
{
'Content-Type': 'application/x-www-form-urlencoded' ,
}
);
let options = new RequestOptions({ headers: headers ,withCredentials : true});
return this.http.post('http://localhost:8080/**/authenticate', objectToSend,options)
.map((res) => res)
.catch((error:any) => Observable.throw(error.text() || 'Server error' ));
}
一段时间前我被告知允许原产地只接受一个原产地。尝试使用
*
?我正在尝试为两个地址配置访问权限,但不是所有人。正如我告诉过你的,我认为Allow Origin只接受一个来源。没有其他选择吗?