首页 > 软件开发 > JAVA >

Java微服务如何解决跨域问题

来源:互联网 2023-03-16 19:10:53 414

导致跨域的原因:浏览器的同源策略限制。不同IP和端口间通讯,会存在跨域问题。这个问题只会存在浏览器,服务内部并没有限制。Vct办公区 - 实用经验教程分享!

Java微服务如何解决跨域问题Vct办公区 - 实用经验教程分享!

工具/原料

  • 荣耀14
  • Windows10
  • Java微服务各版本

方法/步骤

  • 1

    情况1:针对单个服务的跨域问题,增加如下允许跨域配置类即可。Vct办公区 - 实用经验教程分享!

    Java微服务如何解决跨域问题Vct办公区 - 实用经验教程分享!

  • 2

    情况2:有网关时,网关配置允许跨域,微服务不配置。如下 Spring Cloud Gateway 网关配置允许跨域,则要求所有请求统一走网关。Vct办公区 - 实用经验教程分享!

    Java微服务如何解决跨域问题Vct办公区 - 实用经验教程分享!

  • 3

    情况3:有网关时,网关配置允许跨域,微服务配置允许跨域。需要在网关的配置里加上重复请求头。配置`DedupeResponseHeader=Vary Access-Control-Allow-Origin Access-Control-Allow-Credentials, RETAIN_UNIQUE`。此时走不走网关,都没有跨域问题。Vct办公区 - 实用经验教程分享!

    Java微服务如何解决跨域问题Vct办公区 - 实用经验教程分享!

  • 3该信息未经许可获取自百度经验
  • 4

    情况4:网关不配置,微服务配置允许跨域。请求如果走网关,则会存在跨域问题。不走网关,直接访问微服务,没有跨域问题。Vct办公区 - 实用经验教程分享!

  • 5

    情况5:网关不配置,微服务不配置。走不走网关都会存在跨域问题。Vct办公区 - 实用经验教程分享!

  • 6

    总结:Vct办公区 - 实用经验教程分享!

    1. 情况1:针对单个服务的跨域问题,增加允许跨域配置类即可。

    Vct办公区 - 实用经验教程分享!

    2. 情况2:有网关时,网关配置允许跨域,微服务不配置。如 Spring Cloud Gateway 网关,则要求所有请求统一走网关。

    Vct办公区 - 实用经验教程分享!

    3. 情况3:有网关时,网关配置允许跨域,微服务配置允许跨域。需要在网关的配置里加上重复请求头。配置`DedupeResponseHeader=Vary Access-Control-Allow-Origin Access-Control-Allow-Credentials, RETAIN_UNIQUE`。此时走不走网关,都没有跨域问题。

    Vct办公区 - 实用经验教程分享!

    4. 情况4:网关不配置,微服务配置允许跨域。请求如果走网关,则会存在跨域问题。不走网关,直接访问微服务,没有跨域问题

    Vct办公区 - 实用经验教程分享!

    5. 情况5:网关不配置,微服务不配置。走不走网关都会存在跨域问题。Vct办公区 - 实用经验教程分享!

  • 注意事项

    • 使用的网关为Spring Cloud Gateway 网关

    以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!Vct办公区 - 实用经验教程分享!


    标签: JAVA互联网

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号统计代码