CORS - Java 和 Javascript

我在 UI 中收到典型的 Cors 错误。出于测试原因,我想完全禁用它。我觉得奇怪的是,我得到了 200 并且我可以在 Chrome 调试的响应中看到“Hello World”,但我得到:

从源“ http://localhost: 8000”访问“http://localhost: 8101/app/services/rest/user ”处的XMLHttpRequest已被 CORS 策略阻止:没有“Access-Control-Allow-Origin”标头存在于所请求的资源上。

我有这个豆子

 <jaxrs:server id="processServices" address="/">

    <jaxrs:serviceBeans>

       <ref bean="userServiceBean"/>

    </jaxrs:serviceBeans>

 </jaxrs:server>


 <bean id="userServiceBean" class="com.package.services.UserService"/> 

以及基本服务:


@Service("processUserService")

public class UserService {


    @GET

    @Path("/user")

    public String getUser() {

        return "Hello World"

    }

}

我在 stackoverflow 上看到,他们告诉我要使用


import java.io.IOException;

import javax.ws.rs.container.ContainerRequestContext;

import javax.ws.rs.container.ContainerResponseContext;

import javax.ws.rs.container.ContainerResponseFilter;

import javax.ws.rs.ext.Provider;


@Provider

public class CORSFilter implements ContainerResponseFilter {


   @Override

   public void filter(final ContainerRequestContext requestContext,

                      final ContainerResponseContext cres) throws IOException {

      cres.getHeaders().add("Access-Control-Allow-Origin", "*");

      cres.getHeaders().add("Access-Control-Allow-Headers", "origin, content-type, accept, authorization");

      cres.getHeaders().add("Access-Control-Allow-Credentials", "true");

      cres.getHeaders().add("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS, HEAD");

      cres.getHeaders().add("Access-Control-Max-Age", "1209600");

   }

}

但仍然是同样的错误。我调试了一下,这个方法没有被调用。


我在这里缺少什么?


慕森卡
浏览 51回答 1
1回答

慕桂英3389331

您需要在您的服务器上注册该提供程序。就像是:<jaxrs:server id="processServices" address="/">&nbsp; &nbsp; <jaxrs:serviceBeans>&nbsp; &nbsp; &nbsp; &nbsp;<ref bean="userServiceBean"/>&nbsp; &nbsp; </jaxrs:serviceBeans>&nbsp; &nbsp; <jaxrs:providers>&nbsp; &nbsp; &nbsp; &nbsp; <ref bean="corsfilterProvider" />&nbsp; &nbsp; </jaxrs:providers>&nbsp;</jaxrs:server>&nbsp;<bean id="corsfilterProvider" class="your.filters.full.name"/>&nbsp;<bean id="userServiceBean" class="com.package.services.UserService"/>&nbsp;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java