我正在使用springboot和angular。尝试使用jwt登录,当使用postman发送http时,请求正常,但当尝试使用angular发送相同的http时,我遇到了下一个错误:
访问位于“”的xmlhttprequesthttp://localhost:8080/login“起源”http://localhost:4200'已被cors策略阻止:对飞行前请求的响应未通过访问控制检查:它没有http ok状态。
和
zone evergreen.js:2845 posthttp://localhost:8080/login net::err_失败
当我发送登录以外的请求时,它们工作正常,我知道需要cors,因此代码是下一个:
@EnableGlobalMethodSecurity(securedEnabled = true)
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
public void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().anyRequest().authenticated().and().csrf().disable().sessionManagement()
.sessionCreationPolicy(SessionCreationPolicy.STATELESS).and().cors();
}
@Bean
CorsConfigurationSource corsConfigurationSource() {
org.springframework.web.cors.CorsConfiguration configuration = new org.springframework.web.cors.CorsConfiguration();
configuration.setAllowedOrigins(Arrays.asList("http://localhost:4200"));
configuration.setAllowedMethods(Arrays.asList("*"));
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", configuration);
return source;
}
但错误是一样的。
1条答案
按热度按时间cedebl8k1#
您可以在angular应用程序中使用proxy.conf.json。
这就是一个例子
proxy.conf.json
```{
"/api/*": {
"target": "http://localhost:8080",
"secure": false,
"logLevel": "debug",
"pathRewrite": {
"^/api" : ""
}
}
}
重新启动你的angular应用程序