跨域问题,整不明白了,这边是前端,求解

4 天前
 liudewa

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

  1. 他们的 vue2 不跨域,我 vue3 跨域(应该关系不大),我以为是 vue3 原因,开发时使用本地代理开发的
  2. 现在部署后端用 tomcat 部署的,还是提档跨域
  3. 他们的线上项目(Kestrel 部署) 我也看了 确实不跨域
  4. 我以为是新版浏览器的原因 ,但我用我浏览器打开他们的项目也不跨域
  5. 现在他们说修改 怕影响线上其它项目
1850 次点击
所在节点    前端开发
34 条回复
laobobo
4 天前
给出信息不够,猜测还是 header 配置问题,仔细对比一下。
USDT
4 天前
和框架没关系哈,带 cookie 的 CORS 不允许写*,所以要后端老老实实写 access-control-allow-origin: $request_origin 就好

所以一般来说想跨域后端无脑写传过来的 origin 是最保险的,当然如果确定不会用到 cookie 写*最简单粗暴
zsj1029
4 天前
把你的代码扔到他的容器去跑,或者同域名地址
否则就让加头允许
bzw875
4 天前
[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
4 天前
@bzw875 #4 你这是代理
liudewa
4 天前
@USDT #2 你这是 nginx 吧 现在隔壁组返回的 * 关键他们的业务 能用 不同的域名
liudewa
4 天前
@zsj1029 #3 加了 * 他们级的业务都正常使用,(不同服务器的),我调用 出现跨域了 浏览器报 * 不能用
Xu3Xan89YsA7oP64
4 天前
也别让他们改了,自己去适配吧。搭个 BFF 透传,或者让你们的后端透传一下
liudewa
4 天前
@laobobo #1 他们组的业务(本地开发和线上的) 正常使用
liudewa
4 天前
@shizhibuyu2023 #8 简单问题复杂化了吧
Xu3Xan89YsA7oP64
4 天前
@liudewa #10 看了下你补充了这些接口是公共接口,那就让隔壁组搞定啊,帮他们看看 Access-Control-Allow-[Origin | Headers | Method] 这几个头哪个有问题。你又不发出来,这里的人谁知道啊
klo424
4 天前
注意解题思路。

首先,把你跨域的错误信息,原封不动的贴出来。

其次,他们 vue2 不夸域,就把他们请求的代码贴出来,再把你 vue3 自己的代码贴出来,让大家做个对比。

然后,确定 vue2 和服务端 iis 是否在同一个项目/容器内,你 vue3 与服务端是否在同域。

最后,要完整的跨域配置,毕竟跨域不止 access-control-allow-headers 这一个配置。
Niphor
4 天前
如果请求中携带了身份信息,也就是 Cookie ,不能使用 *
liudewa
4 天前
liudewa
4 天前
@klo424 #12 好的哥 14 楼
liudewa
4 天前
@shizhibuyu2023 #11 14 楼
liudewa
4 天前
@liudewa #14 下面是正常的 也是两个不同端口, 上面是我的提示跨域的,预检测就没过去
liudewa
4 天前
@Niphor #13 我们都是 header 里面的 token 没用 cookie
Nosub
4 天前
CORS 的实现原理以及 Spring 实战
https://nosub.net/posts/p/165
liudewa
4 天前
@laobobo #1 14 楼放了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1092705

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX