在所有这些之后,我得到了相同的错误。如何解决
错误:在"访问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()...
}
}