简体   繁体   English

Docker Traefik API 上的 GET 请求 - 按 CORS 规则阻止

[英]GET Request on Docker Traefik API - Block by CORS rules

I've got trouble finding how to reach my Traefik API using GET request from an other docker container.我在寻找如何使用来自其他 docker 容器的 GET 请求访问我的 Traefik API 时遇到了麻烦。

Context语境

I have 2 docker container, one running a traefik instance :我有 2 个 docker 容器,一个运行 traefik 实例:

docker run -d -v /var/run/docker.sock:/var/run/docker.sock -p 8080:8080 -p 80:80 -l traefik.frontend.rule=Host:my.server -l traefik.port=80 --name traefik traefik --docker --api

The other container run a quite simple React web application.另一个容器运行一个非常简单的 React Web 应用程序。 I'm trying to reach the Traefik API using XMLHttpRequest .我正在尝试使用XMLHttpRequest访问 Traefik API。

My request is blocked by the Traefik CORS Policy.我的请求被 Traefik CORS 政策阻止。 Any idea on how configure Traefik to enable Access-Control-Allow-Origin ?关于如何配置 Traefik 以启用 Access-Control-Allow-Origin 的任何想法?

The only way I've done this is by wiring the Access-Control-Allow-Origin header as a label in the Træfik container.我完成此操作的唯一方法是将Access-Control-Allow-Origin标头连接为 Træfik 容器中的标签。

traefik.frontend.headers.customResponseHeaders=Access-Control-Allow-Origin:*

And if you need to add more headers like Access-Control-Allow-Method , you must concatenate them with double bars ( || ) in the same rule.如果您需要添加更多标题,如Access-Control-Allow-Method ,则必须在同一规则中使用双杠 ( || ) 将它们连接起来。

traefik.frontend.headers.customResponseHeaders=Hdr1:val1,val2||Hdr2:val3

So your docker run line would be as follows.因此,您的docker run行将如下所示。

docker run -d -v /var/run/docker.sock:/var/run/docker.sock \
-p 8080:8080 -p 80:80 \
-l traefik.frontend.rule=Host:my.server \
-l traefik.port=80 \
-l "traefik.frontend.headers.customResponseHeaders=Access-Control-Allow-Origin:*" \
--name traefik traefik --docker --api

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 不要在 traefik 规则中规范化 docker 容器名称 - Do not normalize docker container names in traefik rules 由于 CORS ZC5FD214CDD0D2B3B422Z2E73B022BA5C,无法使 Spring 引导 API 请求 - Unable To Make Spring Boot API Request Due To CORS Docker Fritzbox 拒绝使用 traefik / docker 的自定义域请求 - Fritzbox refuses request for custom domain with traefik / docker iptables 规则块 docker 服务 - Iptables rules block docker service Traefik 和 Nginx 在 Docker 上使用 HTTPS / 400 错误请求 - Traefik and Nginx with HTTPS on Docker / 400 Bad Request traefik docker标签中基于主机和路径的路由规则的混合 - Mixture of host and path based routing rules in traefik docker labels 带有docker后端的traefik反向代理 - 在traefik的配置文件中配置前端规则而不是通过容器标签 - traefik reverse-proxy with docker backend - configure frontend rules in traefik's config file and not via container label API-Platform Admin-Docker-Container 在 traefik 后面的 HTTPS-Request 的响应 Header 中有 HTTP 链接 - API-Platform Admin-Docker-Container has HTTP link in Response Header of HTTPS-Request behind traefik Angular 8 和 Flask REST API 作为 Docker 群服务 CORS 请求未成功 - Angular 8 and Flask REST API as Docker swarm services CORS request did not succeed Traefik 2.2 无法通过 TCP 连接到 Docker Swarm API - Traefik 2.2 cannot connect to Docker Swarm API over TCP
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM