我使用JavaSpring作为后端,当前端命中我的endpoint时,他得到了错误
访问位于“”的XMLHttpRequesthttp://192.168.100.74:9009/v1/admin/c2da6237-22d2-433a-97b7-226d1989bd99/列出用户“来源”http://localhost:3001'已被CORS策略阻止:对飞行前请求的响应未通过访问控制检查:它没有HTTP ok状态。
我使用JavaSpring,如何处理这个问题?谢谢
您需要允许要从其中授予访问权限的客户端域调用API。为此,您可以简单地创建CORSFilter
。下面是最小的CORSFilter
实现:
@Component
@Order(Ordered.HIGHEST_PRECEDENCE)
public class CorsFilter implements Filter {
/*
* (non-Javadoc)
*
* @see javax.servlet.Filter#init(javax.servlet.FilterConfig)
*/
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
/*
* (non-Javadoc)
*
* @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest,
* javax.servlet.ServletResponse, javax.servlet.FilterChain)
*/
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
throws IOException, ServletException {
HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest;
HttpServletResponse httpServletResponse = (HttpServletResponse) servletResponse;
httpServletResponse.addHeader("Access-Control-Allow-Origin", "*"); // IMPORTANT: Allowed all the domains
httpServletResponse.addHeader("Access-Control-Allow-Methods", "OPTIONS, GET, POST, DELETE, PUT, PATCH, HEAD");
httpServletResponse.addHeader("Access-Control-Allow-Headers",
"Origin, Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers, Access-Control-Allow-Origin, Authorization");
httpServletResponse.addHeader("Access-Control-Expose-Headers",
"Access-Control-Allow-Origin, Access-Control-Allow-Credentials, Content-Disposition");
httpServletResponse.addHeader("Access-Control-Allow-Credentials", "true");
httpServletResponse.addIntHeader("Access-Control-Max-Age", 3600);
if ("OPTIONS".equalsIgnoreCase(httpServletRequest.getMethod())) {
httpServletResponse.setStatus(HttpServletResponse.SC_OK);
} else {
filterChain.doFilter(httpServletRequest, httpServletResponse);
}
}
/*
* (non-Javadoc)
*
* @see javax.servlet.Filter#destroy()
*/
@Override
public void destroy() {
}
}
具体关注上面代码中的Access-Control-允许-起源
头。
您需要向控制器方法添加一个@CrossOrigin
注释。请参阅https://spring.io/guides/gs/rest-service-cors/"启用CORS"标题下的详细说明。
当我尝试在角7网络应用程序中执行补丁请求时,我遇到了一个问题。在我的后端,我有: 在我的前端服务中,我: 错误是: 我能做什么?谢谢
CORS策略已阻止CORS从源站对X处XMLHttpRequest的访问:对飞行前请求的响应未通过访问控制检查:它没有HTTP ok状态。 嗨,我正在努力解决我的问题与CORS拒绝我的Vue组件与外部API与axios的交互,因为它返回此错误。我尝试了使用Barryvdh的Cors头支持和制作中间件和自定义路由。这根本行不通。Barryvdh回购中README. md中提到的一切都已经完成,不幸的
我使用从使用API的ReactJS发送数据,我得到一个错误: 以下是错误: CORS策略已阻止从来源“http://localhost/2019/EURDU/user_controllers/userregistercontroller/userregistration”访问位于“http://localhost:3000”的XMLHttpRequest:飞行前响应中的access-control
我正在使用以下版本 null CORS策略阻止了从原点获取的访问:请求的资源上没有'Access->Control-Allow-Origin'标头。如果一个不透明的响应满足您的需要,请将请求的模式设置为“no-cors”,以便在禁用CORS的情况下获取资源。 我不明白为什么我会得到这个错误。 以下是从Google Chrome开发者工具中提取的相关请求和响应细节 推荐人策略:严格的-原产地-当-跨
有点晚了,但我记得我最终通过在后端的配置中设置来解决这个问题。 完全偶然地,我注意到如果我在前端的客户端中设置,一切都正常工作。然而,将其切换到不断抛出错误。然后我把两个和两个放在一起,在后端设置,一切都按预期工作。 我的应用程序使用cookie,所以必须这样做。 这可能是重复的,但我没有找到与我的问题相关的线索。 我正在进行以下API调用: 这会引发一个错误: 当我将我的应用程序部署到Herok