出于安全考虑,浏览器通过跨域资源共享CORS(Cross Origin Resource Sharing)机制克允许web应用服务器进行跨域访问控制,使跨域数据传递安全进行。在实现上是在HTTP Header中追加一些额外的信息来通知浏览器准许以上访问。
什么场景需要用到跨域策略
通常,会利用CORS进行跨域访问控制,例如允许哪一些资源被哪一个域名进行跨域访问,以及可以定义资源的访问方式和生命周期。
通过例子来理解
nginx 服务上 部署的是 yekangming.com 中的页面,在页面中需要引用 carryyip.com 中的图片,不是同一域名、同一端口、同一协议则会发生跨域的问题,通过在 httpd 服务上允许来自 yekangming.com 的请求则可以解决跨域的问题。
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:name: httpd-vs
spec:hosts:- httpd-servicehttp:- route:- destination:host: httpd-servicecorsPolicy:allowOrigin:- yekangming.comallowMethods:- GETmaxAge: "2d"
对满足条件的请求配置跨域资源共享,其实都是被转化为 Access-Control-* 的Header。