由于Android Cordova应用程序出现以下错误,我试图允许访问控制原产地:
http://localhost:8080/#/: Line 0 : Access to XMLHttpRequest at 'https://api.v2.domain.com/api/v1/users/me/favorites?lat=42.5467&lng=-83.2113&radius=10.0&limit=5&search=' from origin 'http://localhost:8080' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.我正在试图找出在Kubernetes中添加它的位置--我假设它在服务或部署的某个地方。
这两件事都是:
apiVersion: v1
kind: Service
metadata:
name: domain-server
annotations:
dns.alpha.kubernetes.io/external: "api.v2.domain.com"
service.beta.kubernetes.io/aws-load-balancer-ssl-cert: arn:aws:acm:us-east-2:152660121739:certificate/8efe41c4-9a53-4cf6-b056-5279df82bc5e
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: http
spec:
type: LoadBalancer
selector:
app: domain-server
ports:
- port: 443
targetPort: 8080
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: domain-server
spec:
replicas: 2
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 3
revisionHistoryLimit: 10
template:
metadata:
labels:
app: domain-server
spec:
containers:
- name: domain-server
image: "152660121739.dkr.ecr.us-east-2.amazonaws.com/domain-server"
imagePullPolicy: Always
resources:
limits:
memory: "1200Mi"
requests:
memory: "900Mi"
cpu: "200m"
ports:
- name: http
containerPort: 8080
...这是放置标题的正确位置吗?如果是这样的话,我们将如何在库伯奈特斯添加CORS呢?我注意到一些类似于Nginx的建议,但是我使用的应用程序不使用Nginx。
发布于 2019-08-12 20:38:50
这个问题与库伯奈特无关。浏览器执行CORS,在这里检查引用:https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS。您还可以使用、curl、或postman来查看内容,而不会出现CORS错误。
通常,nginx服务器可以修复这个问题,而kubernetes-nginx并没有什么不同。它基本上使用反向代理来控制服务。检查此引用以开始通过ingress修复CORS错误:https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/annotations/#enable-cors
发布于 2019-08-21 08:26:07
如果您使用Nginx,您将更容易在服务配置文件中添加以下注释:
nginx.ingress.kubernetes.io/enable-cors: "true"
nginx.ingress.kubernetes.io/cors-allow-methods: "PUT, GET, POST, OPTIONS"
nginx.ingress.kubernetes.io/cors-allow-credentials: "true"
nginx.ingress.kubernetes.io/configuration-snippet: |
more_set_headers "Access-Control-Allow-Origin: $http_origin";但是在您的例子中,问题似乎更多地与CORS联系在一起,而与Kubernetes cors-条款直接相关。你必须启用CORS。
您可以编辑kubernetes API服务器yaml文件,以使CORS工作。
将行--cors-allowed-origins="http://*"参数添加到/etc/default/kube-apiserver或/etc/kubernetes/manifests/kube-apiserver.yaml文件中,这取决于您的kube配置文件位于何处。
spec:
containers:
- command:
- kube-apiserver
- --cors-allowed-origins=["http://*"]然后重新启动库贝-阿皮瑟弗。
然后将服务配置文件中的注释dns.alpha.kubernetes.io/external: "api.v2.domain.com"更改为dns.alpha.kubernetes.io/external: "http://api.v2.domain.com",并应用更改。
https://stackoverflow.com/questions/57467736
复制相似问题