angular - 带有 Angular 的 CORS 起源
问题描述
我在 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 项目中添加了以下类。
@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 {}
}
推荐阅读
- c# - 构建字符串时如何保持上一行的缩进
- python - Django Web 服务器启动但不请求任何内容
- python - GT521F52 指纹传感器库
- angular - 如何设置嵌套 ngFor
- php - 上传图片到 laravel 的问题
- php - Paytm PHP 函数 mcrypt_get_block_size() 已弃用问题
- c# - 使用 C# 中的 API 设置 Google 日历事件的颜色
- sql-server - Perl dbi:Sybase 从 linux 机器连接到使用 Windows 身份验证的 SQL Server
- button - 如何在用户在 JS 中单击移动设备中的后退按钮时捕获事件
- javascript - Javascript:函数中的数组以及如何调用它们