java - Angular 和 Spring 启动:请求的资源上不存在“Access-Control-Allow-Origin”标头。如何通过角度和弹簧靴解决它
问题描述
毕竟这一切我得到了同样的错误。如何解决它。
错误:从源“http://localhost:4200”访问“http://localhost:8083/getuser”的 XMLHttpRequest 已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:没有“访问” -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)
}
}
app.module.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";
}
}
解决方案
如果这只是您正在使用的玩具项目而不是生产代码,您可以像这样禁用CorsFilter
in SpringSecurity
...
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.cors().disable()...
}
}
推荐阅读
- javascript - 频率上的音频 API 中心可视化
- sql - 比较 SQL 中的列值
- r - anesrake 错误:“没有变量的偏离超过 ____”
- javascript - 同步函数执行(排序算法)
- android - 如何在活动重新创建后处理 onCreate 中 Dagger 注入所需的未初始化资源?
- java - 如何在一组值上正确使用 assertThrows?
- elasticsearch - 长和浮点字段在 Kibana 中显示为文本字段
- azure-active-directory - Azure Blobs 的身份验证和授权方式
- python - 无意中炸了我的电脑.. 为 python 计算我们的多处理
- maven - GCLOUD 工件注册表:使用 Cloud Build 手动上传的 Maven 依赖项下载权限错误