我在这里开始失去理智。我的项目在Spring boot和React上运行,我正在尝试实现注销功能。我想让它工作:
从反应应用程序(localhost:3000),我想调用Spring Boot服务器(localhost:8080/exit)上的“/out”endpoint。除了我的实现之外,cors没有其他问题(从服务器获取数据、登录或注册用户时没有错误)。
以下是代码(Spring Boot):
(UserController.java)
@RequestMapping("/exit")
public void exit(HttpServletRequest request, HttpServletResponse response) {
// token can be revoked here if needed
new SecurityContextLogoutHandler().logout(request, null, null);
try {
//sending back to client app
response.sendRedirect(request.getHeader("referer"));
System.out.println("called logout endpoint");
} catch (IOException e) {
e.printStackTrace();
}
}
}
(安全配置.java)
@Override
protected void configure(HttpSecurity http) throws Exception {
http.cors();
http.csrf().disable();
http.authorizeRequests();
http.sessionManagement().sessionCreationPolicy(STATELESS);
http.authorizeRequests().antMatchers("/login/**", "/register/**").permitAll();
http.authorizeRequests().antMatchers("/student/**").hasAuthority(Role.STUDENT.getCode());
http.authorizeRequests().antMatchers("/teacher/**").hasAuthority(Role.TEACHER.getCode());
http.authorizeRequests().antMatchers("/coordinator/**").hasAnyAuthority(Role.COORDINATOR.getCode(), Role.ADMIN.getCode());
http.authorizeRequests().antMatchers("/admin/**").hasAuthority(Role.ADMIN.getCode());
http.authorizeRequests().antMatchers("/exit").permitAll();
http.authorizeRequests().anyRequest().authenticated();
http
.logout()
.logoutUrl("/exit")
.deleteCookies("access_token")
.logoutSuccessUrl("http://localhost:3000");
http.addFilter(new CustomAuthenticationFilter(authenticationManagerBean(), jwtAlgorithm(), userRepository));
http.addFilterBefore(new CustomAuthorizationFilter(userDetailsService, jwtAlgorithm()), UsernamePasswordAuthenticationFilter.class);
}
(安全配置.java)
@Bean
public CorsConfigurationSource corsConfigurationSource() {
final CorsConfiguration configuration = new CorsConfiguration();
configuration.setAllowedOrigins(List.of("http://localhost:3000/", "http://localhost:3000"));
configuration.setAllowedMethods(List.of("GET", "POST", "PUT", "DELETE", "PUT", "OPTIONS", "PATCH", "DELETE"));
configuration.setAllowedHeaders(List.of("Authorization", "Cache-Control", "Content-Type", "Access-Control-Allow-Origin"));
configuration.setAllowCredentials(true);
configuration.setExposedHeaders(List.of("Authorization", "Access-Control-Allow-Origin"));
final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", configuration);
return source;
}
我只想摆脱这该死的东西
在“中”访问XMLHttpRequesthttp://localhost:3000/'(从'http://localhost:8080/exit“)来源”http://localhost:3000'已被CORS策略阻止:请求的资源上不存在'Access Control Allow Origin'标头。
错误。基本上没有完全关闭cors。
我浏览了这里的大多数帖子,问了类似的问题,但没有找到答案。什么都没用。误差保持不变。
你能帮我吗?谢谢你。
它必须与response.sendRedirect
行相关。使用此命令,就好像您已从服务器端向客户端发送了请求。因此CORS策略
再次发挥作用。我没有使用React的经验,但我认为您需要配置运行React应用程序的WebServer。或者,您可以返回200 OK
并在客户端进行此重定向,而不是sendReDirect。
我试图加载一个测试网页(在我的服务器)。页面是: 但是webView没有加载页面。甚至在@-50之后也没有呼叫 此外,从url加载js脚本的所有站点都会出现此问题。包括youtube、fb等。 这里我的设置 布局:
我试着把数据从React.jslocalhostinsert.php文件。当我提交的形式从reactjs它给我错误的控制台错误是: 访问位于“”的XMLHttpRequesthttp://localhost/reactphpdemo/connect.php“起源”http://localhost:3000'已被CORS策略阻止:对飞行前请求的响应未通过访问控制检查:请求的资源上不存在'access
我犯了这个错误 无法加载XMLHttpRequesthttp://domain.com/canvas/include/rs-plugin/js/extensions/revolution.extension.video.min.js.飞行前响应中的访问控制允许标头不允许请求标头字段X-Requested-With。 我的php页面顶部有这两行代码,用于加载这个js文件。 但是问题依然存在,我该怎么
当我试图从另一个域访问rest服务时,我得到了以下错误 无法加载对飞行前请求的响应没有通过访问控制检查:请求的资源上没有“访问-控制-允许-起源”标头。因此,不允许访问源'http://localhost:8080'。 我将服务器端配置为响应跨域调用,这可以用于GET调用,但POST调用会产生错误 谢谢
问题内容: 我看到以下错误: 使用此代码: 是什么原因引起的,如何解决? 问题答案: 在当前域之外发出ajax请求时,Javascript是受限制的。 例1:您的域名为example.com,并且您想向test.com提出请求=>您不能。 例2:您的域名是example.com,并且您想向inner.example.com发送请求,但是您不能。 例3:您的域名为example.com:80,并且您
我已经创建了两个web应用程序--客户端和服务应用程序。 当客户端和服务应用程序部署在同一个Tomcat实例中时,它们之间的交互很好。 但是当应用程序部署到分开的Tomcat实例(不同的机器)时,当请求发送服务应用程序时,我会得到以下错误。 我的客户端应用程序使用JQuery、HTML5和bootstrap。