Angular 和 Spring 引导:请求的资源上不存在'Access-Control-Allow-Origin'标头。如何通过角度和弹簧靴解决它



在所有这些之后,我得到了相同的错误。如何解决

错误:在"访问XMLHttpRequesthttp://localhost:8083/getuser'来自原点'http://localhost:4200'已被CORS策略阻止:对飞行前请求的响应未通过访问控制检查:请求的资源上不存在"access control Allow Origin"标头##

拦截器.ts

@Injectable()
export class AuthInterceptor implements HttpInterceptor{
constructor(private loginService:LoginService){
}
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
let newReq=req;
let token=this.loginService.getToken();
console.log("Interceptor ",token) 
if(token!=null){
newReq=newReq.clone({setHeaders:{Authorization:`Bearer ${token}`}})
}
return next.handle(newReq)
}
}

应用程序模块.ts

providers: [LoginService,AuthGuard, 
[{provide:HTTP_INTERCEPTORS,useClass:AuthInterceptor,multi:true}]]

后端控制器

@CrossOrigin(origins ="*")
@RestController
public class Home {
@GetMapping("/welcome")  
public String welcome() {

System.out.println("Home.welcome()");
return "this is private page ";
}
@GetMapping("/getuser")
public String getUser() {

return "My Name";
}
}

如果这只是一个你正在处理的玩具项目,而不是生产代码,你可以像这样禁用SpringSecurity中的CorsFilter。。。

@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.cors().disable()...
}
}

相关内容

最新更新