我们的项目调了隔壁组的两个接口,两台服务器上的用的 iis 部署的,1 个接口返回 access-control-allow-headers:* 一个返回的是 access-control-allow-headers: 对应域名(这个正常调用),返回 * 的 但我开发的时候就碰到跨域了,就要求隔壁组返回和第一个请求一样的说 * 新浏览器不行了,但他们给我演示他们的项目(vue2)就不会跨域, 现在不解的有几个地方:

  1. 他们的 vue2 不跨域,我 vue3 跨域(应该关系不大),我以为是 vue3 原因,开发时使用本地代理开发的
  2. 现在部署后端用 tomcat 部署的,还是提档跨域
  3. 他们的线上项目(Kestrel 部署) 我也看了 确实不跨域
  4. 我以为是新版浏览器的原因 ,但我用我浏览器打开他们的项目也不跨域
  5. 现在他们说修改 怕影响线上其它项目
举报· 3202 次点击
登录 注册 站外分享
30 条回复  
laobobo 小成 昨天 12:00
给出信息不够,猜测还是 header 配置问题,仔细对比一下。
USDT 小成 昨天 12:18
和框架没关系哈,带 cookie 的 CORS 不允许写*,所以要后端老老实实写 access-control-allow-origin: $request_origin 就好 所以一般来说想跨域后端无脑写传过来的 origin 是最保险的,当然如果确定不会用到 cookie 写*最简单粗暴
zsj1029 初学 昨天 12:21
把你的代码扔到他的容器去跑,或者同域名地址 否则就让加头允许
bzw875 小成 昨天 12:23
[access-control-allow-headers: 对应域名] 不认识英文吗,headers 为什么放域名? 配置 [*] 就行 以 vite 为例代理服务器请求要转发 header server: { proxy: { '/api': { target: 'http://localhost:3000', changeOrigin: true, rewrite: (path) => path.replace(/^\/api/, ''), onProxyReq: (proxyReq, req, res) => { proxyReq.setHeader('X-Custom-Header', 'custom-value'); }, }, }, },
liudewa 楼主 小成 昨天 12:28
@bzw875 #4 你这是代理
liudewa 楼主 小成 昨天 12:29
@USDT #2 你这是 nginx 吧 现在隔壁组返回的 * 关键他们的业务 能用 不同的域名
liudewa 楼主 小成 昨天 12:30
@zsj1029 #3 加了 * 他们级的业务都正常使用,(不同服务器的),我调用 出现跨域了 浏览器报 * 不能用
shizhibuyu2023 初学 昨天 12:31
也别让他们改了,自己去适配吧。搭个 BFF 透传,或者让你们的后端透传一下
liudewa 楼主 小成 昨天 12:35
@laobobo #1 他们组的业务(本地开发和线上的) 正常使用
1234下一页
返回顶部