JavaScript istemcisinden (A makinesinde çalışan) Web sunucusuna (makine B'de çalışan) AJAX çağrısı yapıyorum. Müşteri RESTful Web hizmeti (Jersey) tarafından sunulan bir URL'ye erişim dener ve hata ile bloke edilir: server"Erişim-Denetim-İzin-Menşei: *" REST Web Hizmeti'nde hiçbir etkiye sahip değildir.
Origin http://localhost/ is not allowed by Access-Control-Allow-Origin
Ben herhangi bir istemci erişime izin 2 başlık parametreleri eklendi. Ancak yardım etmedi:
@Context
private HttpServletResponse servlerResponse;
@POST
@Path("testme")
public void test(){
servlerResponse.addHeader("Access-Control-Allow-Origin", "*");
servlerResponse.addHeader("Access-Control-Allow-Credentials", "true");
}
aynı başlıklarının
JSP durumunda çalışır:<%
response.addHeader("Access-Control-Allow-Origin", "*");
response.addHeader("Access-Control-Allow-Credentials", "true");
%>
<html>
<head><title>test jsp</title></head>
<body>
test
</body>
</html>
Ben bir şey eksik?
sayesinde
PS istemci parçasıdır:
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 istemci kodunuz neye benziyor? POST kullanıyor mu? Uygulamanız yalnızca POST için yapılandırılmış gibi görünüyor. – monsur
İstemcim POST kullanıyor. – lili
Çözüm bulundu: gerekli yanıtları her yanıta ekleyen bir filtre yapılandırın. – lili