V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ClancyH
V2EX  ›  Java

tomcat 解决跨域时 Access-Control-Allow-Origin 不能为*

  •  
  •   ClancyH · 2019-06-04 15:48:43 +08:00 · 4123 次点击
    这是一个创建于 1760 天前的主题,其中的信息可能已经有所发展或是发生改变。
    用 Tomcat9.0.16 的 CorsFilter 解决跨域的时候前端访问出现了 Access-Control-Allow-Origin 不能为*的问题,之前一个同样的项目没碰到这个,难道 CorsFilter 的 origin 不是动态的吗?
    10 条回复    2019-06-05 17:52:13 +08:00
    KYLINZZ
        1
    KYLINZZ  
       2019-06-04 16:14:50 +08:00
    带 cookie 的就不能为*,需要写上对应的 ip+端口号
    ClancyH
        2
    ClancyH  
    OP
       2019-06-04 16:20:08 +08:00
    @KYLINZZ 我知道,但是这个 tomcat 的 corsfilter 没有做吗?我之前用的时候没有做特殊的配置就正常的配一下 corsfilter 一样正常运行的同样是有 cookie 的
    choice4
        3
    choice4  
       2019-06-04 16:23:12 +08:00 via Android
    应该是 allow credentials 设置为了 true,这种可以将其调为 false,或从请求中获取到 ip 设置在 access-con....-origin 中
    ClancyH
        4
    ClancyH  
    OP
       2019-06-04 16:25:36 +08:00
    @choice4 allow credentials 不是默认 false 吗,我用的默认值,从请求获取 ip 在设置就是自己实现具体 filter,这个没问题,主要想知道为什么这次 tomcat 的 corsfilter 没有动态设置 origin,是使用姿势不对还是咋地
    cccy0
        5
    cccy0  
       2019-06-04 17:54:27 +08:00
    allow credentials == true 和 Access-Control-Allow-Origin * 不能同时存在
    ClancyH
        6
    ClancyH  
    OP
       2019-06-05 11:30:45 +08:00
    @cccy0 allow credentials 是默认值 false
    youngfish
        7
    youngfish  
       2019-06-05 16:02:40 +08:00
    CorsFilter 中的 origin 我们当时是通过配置文件实现的,需要添加域名,改配置文件就行了
    wc951
        8
    wc951  
       2019-06-05 16:18:05 +08:00 via Android
    spring 的 corsfilter 会在 allow credentials 为 true 且 allow
    origin 为*的时候把 Access-Control-Allow-Origin 设置为 request origin
    ClancyH
        9
    ClancyH  
    OP
       2019-06-05 16:44:45 +08:00
    @wc951 其实实现不难,主要想知道为什么 tomcat 的 corsfilter 这次不生效了,看了 tomcat 的源码之后发现 tomcat 好像没有做相关处理,都不知道为什么之前没出问题了
    wc951
        10
    wc951  
       2019-06-05 17:52:13 +08:00 via Android
    @ClancyH cors 分为简单请求和预检请求,你之前没出问题的应该是简单请求
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5315 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 09:06 · PVG 17:06 · LAX 02:06 · JFK 05:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.