JavaScript 클라이언트 (시스템 A에서 실행 중)에서 웹 서버 (시스템 B에서 실행 중)로 AJAX 호출을합니다. 클라이언트는 RESTful 웹 서비스 (뉴저지)에 의해 노출 된 URL에 액세스하려고, 그것은 오류로 차단 : 서버에서"Access-Control-Allow-Origin : *"은 REST 웹 서비스에 영향을주지 않습니다.
Origin http://localhost/ is not allowed by Access-Control-Allow-Origin
나는 모든 클라이언트에 대한 액세스를 허용 2 헤더 매개 변수를 추가했다. 그러나 그것은 도움이되지 않았다 :
@Context
private HttpServletResponse servlerResponse;
@POST
@Path("testme")
public void test(){
servlerResponse.addHeader("Access-Control-Allow-Origin", "*");
servlerResponse.addHeader("Access-Control-Allow-Credentials", "true");
}
같은 헤더
는 JSP의 경우 일 :<%
response.addHeader("Access-Control-Allow-Origin", "*");
response.addHeader("Access-Control-Allow-Credentials", "true");
%>
<html>
<head><title>test jsp</title></head>
<body>
test
</body>
</html>
내가 뭔가를 놓치고 있습니까?
감사
PS 클라이언트 부분은 다음과 같습니다
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, java.io.IOException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) resp;
// This should be added in response to both the preflight and the actual request
response.addHeader("Access-Control-Allow-Origin", "*");
if ("OPTIONS".equalsIgnoreCase(request.getMethod())) {
response.addHeader("Access-Control-Allow-Credentials", "true");
}
chain.doFilter(req, resp);
}
XmlHttpRequest 클라이언트 코드는 어떤 모양입니까? POST를 사용하고 있습니까? 서블릿은 POST 전용으로 구성된 것처럼 보입니다. – monsur
내 클라이언트가 POST를 사용 중입니다. – lili
해결책 찾기 : 모든 응답에 필요한 헤더를 추가하는 필터를 구성하십시오. – lili