一 Zuul网关如何支持跨域
默认情况下,Zuul将所有跨域请求(CORS)路由到服务。如果您希望Zuul处理这些请求,可以通过提供自定义WebMvcConfigurer bean来完成:
具体如下
1 |
|
二 验证跨域支持情况
模拟前准备:
打开控制台随便打开一个域名如 https://baidu.com
引入jquery并设置为同步
1
2
3
4
5
6
7
8var importJs=document.createElement('script') //在页面新建一个script标签
importJs.setAttribute("type","text/javascript") //给script标签增加type属性
importJs.setAttribute("src", 'https://ajax.microsoft.com/ajax/jquery/jquery-1.4.min.js') //给script标签增加src属性, url地址为cdn公共库里的
document.getElementsByTagName("head")[0].appendChild(importJs) //把importJs标签添加在页面
$.ajaxSetup({
async: false
});
在未配置跨域之前执行以下js请求网关接口并观察结果:
1 | var result = $.get('http://localhost:8888/business/test1'); |
出现以下报错
1 | Access to XMLHttpRequest at 'http://localhost:8888/business/test1' from origin 'http://localhost:9999' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. |
具体报错截图:
配置跨域支持,观察结果
执行上一步相同的js,可以看到正常的接口返回,并没有出现跨域问题: