Angular 的 CORS 来源

CORS Origin with Angular

我在 Angular 上的 CORS Origin 有问题...我在 DigitalOcean 上的 kluster kubernetes 中部署了我的项目。

例如,我可以使用此服务:http://167.172.13.45:8889(并且有效)与 Postman。

我在 Angular 8

服务
@Injectable()
export class CategoriesService {

  public apiUrl: string;

  private categories:string = environment.categories;

  constructor(private http: HttpClient) { }
  
  getAllCategories(page:number){
    return this.http.get(this.categories+"/public/v1");
  }
}

我的环境

导出常量环境={ 生产:假的, 类别:'/类别' };

还有我的代理人...

{
    "/categories/*": {
      "target": "http://167.172.13.45:8889",
      "secure": true,
      "logLevel": "debug",
      "changeOrigin": true
    }
  }

任何人都可以发现或尝试帮助我吗?为什么不工作我自己的项目?使用 digitalocean 中的 Kubernetes 的任何指南。

我在我的 SpringBoot 项目中添加以下 class 解决了这个问题。

@Component
public class XClacksOverhead implements Filter {
    
  @Override
  public void doFilter(ServletRequest req, ServletResponse res,
      FilterChain chain) throws IOException, ServletException {

      HttpServletResponse response = (HttpServletResponse) res;
        response.setHeader("Access-Control-Allow-Origin", "*");
        response.setHeader("Access-Control-Expose-Headers", "Content-Disposition");
        response.setHeader("Access-Control-Allow-Methods", "GET,POST,PATCH,DELETE,PUT,OPTIONS");
        response.setHeader("Access-Control-Allow-Headers", "*");
        response.setHeader("Access-Control-Max-Age", "86400");
        chain.doFilter(req, res);
  }

  @Override
  public void destroy() {}

  @Override
  public void init(FilterConfig arg0) throws ServletException {}

}