00:02
各位大家好,下面呢我们继续来学习服务网关,刚才呢,我们在项目中整合了spring,可里边的getway网关,并且最终测试也成功了,那咱们下面呢,用这个网关来解决一下跨域这个问题。首先我先说一下什么叫跨域,之前给大家应该解释过,那下面我再来重复一遍什么叫跨域。那我写到这里啊,跨域呢,我们指的是啊,有三个地方,任何一个地方不相同都会产生跨域,比如现在我通过一个符或者一个地方去访问另一个地方,就做一个调用着力过程,那这过程中的这两个地方有任何一个不一样,会有这么一个会计问题,那有哪些地方呢?第一个我们叫。访问的协议我先写,然后解释,第二个叫这个IP地址,第三个叫做端口号,比如我现在我左边部分,假如说是HTTP。
01:08
然后右边部分呢,比如说是HTTPS,这两个是不一样的,所以会产生跨域,这是第一种情况,然后第二种情况呢,这里写到就是IP地址。那这个很好理解,比如说左边部分我们的IP是192.168.1.1,比如说右边部分呢,咱们是这个IP地址,比如说是这个幺九二点幺六八点。1.2,大家看IP是不一样的,会产生跨域,然后第三个叫端口号,比如说左边部分端口号,假如说是这个8081,然后右边部分的,比如说是这个这个808。大家看端口号是不同的,所以它也会产生跨域,这就叫跨域,就是咱们在互相访问过程中,当你的访问协议IP地址或者端口号有任何一个不一样,都会产生跨域问题,而咱们目前过程中,大家看啊,咱们这个前端的端口号是不是这个95281,而咱后端我们这个地位用的是八零,包括咱最终服务用的是8201和8202,所以他们的动用号是不是肯定不一样啊,那这个过程中就会产生跨域,所以这是我们目前的问题。
02:31
而咱们目前的解决方案是什么呢?给各位强调,咱们目前的方案就是大家看一下。我们在这个服务的CTRL上边,咱是不是都加上了一个注解啊,这注解咱们看一下,比如咱们随便找一个是不是都加了。这个注解就是close注解,这些注解表示让它允许跨域访问,而咱现在用网关之后,咱就不需要在每个考R上面都加这个注解,大家可以通过一个什么,就是一个配置类把它统一做我解决,因为大家知道啊,跨域问题呢,其实是针对阿贾克斯里边一种限制,默认他不允许跨域访问,所以他要让他做这么一种解决,因为这是一种安全的限制。
03:16
那解决的话呢,下面咱就用这个就是网关方式做个实现,那我们看怎么做啊,做法很简单,咱就加个配置类就可以了,那我现在在里边我们来加一个啊。咱们来到网关的附中,然后我在里边,比如说我先写个包,我就叫这个。Config在config里边呢,咱们给它创建一个类,比如叫这个cross config,就处理这个跨域的,我加个注解。处理跨域,然后写完之后在这类上边我们加个注解,就这个configuration表示这个配置类,在配置类里边加上它这个具体代码,其实咱就是new过对象,然后里边设置它相应的参数,那我们来看一下啊里面这个写法。
04:06
我先把它的相关的依赖,我们先给它引入,首先有一个叫艾特B,表示你创建这个对象,然后在对象中呢,我们设置它相关的值,包括各位看到啊,在值里边再让它都是一个星号表示允许它访问,包括路径中杠星星表示也允许访问,所以这样的话呢,咱们就加上一个配置类解决这个跨域。这各位知道啊,这是用网关的解决方案,当然有一点特别强调啊,当你在这个就是网关里边加上了配置类解决跨域,那咱就不需要在CTRL上边再加这个注解,这个注解我们要给它去掉,那这注解为什么去掉呢?就大家应该能想象到啊,我们现在加了配置类之后,当你访问的时候,首先是不是到网关有网关里边咱把框已经解决了,就是你从那个跨域位置已经跳出去了。
05:02
然后你在CTRL里边呢,你又加了注解,什么意思,是不是给它跳回去了,就是你本来已经出来了,你又加了注解,那他肯定又跳回去了,所以咱现在就需要把这个注解给他就去掉,这个各位特别注意,比如说咱们去一下啊,我先把这个CMN里边这个先去掉,然后咱来这个好的P到里边,把这里边的那个注解给它也是去掉,咱后面这就不需要加了,因为咱们在这里边的网关中都已经解决了。那我给他我就给他注掉啊,咱为了就是后面咱看的更方便。现在把它都注掉啊,包括这里边把咱刚才写那个排班的都给它注掉。API里边这些也都给它注释掉。所以现在呢,这些我们应该都注释掉了,注释掉之后,最后咱们把这些服务呢,给它重新启动一下,我们看一下最终的效果是怎么样,首先我们先把网关做启动,就是这个server getway。
06:08
然后启动之后,比如我们再启动这个CMN,还有里边这个好的批都给它启动一下啊,咱们启动之后,然后最终我们再做一个测试。这里边还有这个好的提等我们先等一会儿,然后最终测试一下啊,测试方式跟之前一样,咱就通过这个前端,我们改成了低位的八零端口,然后最终通过平台与管理平台的前端进行测试就可以了。等它先启动啊,我们来看一下,这应该很快啊,目前的网关启动了,CMN启动了,好也启动了,然后下面咱们来到我页面中最终测试。首先我先来到这里边,然后比如现在我们点击某一个模块医院设置,我们看里边数据是不出来了,比如现在我们再点击这个医院列表,大家看数据是不是有了,比如现在我点查看,查看里边这个相关的信息,信息出来了。
07:09
包括咱们看他的排班等等内容是不是也都有了,所以这样的话呢,咱们目前就完成了服务网关getway的整合,包括用网关解决了跨域问题,这个我们就做到了。
我来说两句