V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
guansixu
V2EX  ›  程序员

没想到 2026 年,还要浪费大量时间在跨域问题上

  •  
  •   guansixu · 4 小时 28 分钟前 · 4504 次点击

    公司后端写的接口部署到测试环境了,访问之后发现跨域了,把浏览器的跨域截图发给后端开发,问我报什么错了?难道都 2026 年还不理解跨域是什么原理吗?还需要我给他科普一下吗?心累。

    76 条回复    2026-04-23 13:41:07 +08:00
    Hilong
        1
    Hilong  
       4 小时 26 分钟前   ❤️ 1
    还有这么菜的开发吗,这种还能混下去真幸福啊
    programMrxu
        2
    programMrxu  
       4 小时 25 分钟前   ❤️ 11
    之前我司有个人把解决跨域写在了年会上
    lusxh
        3
    lusxh  
       4 小时 20 分钟前 via iPhone   ❤️ 5
    菜鸡互啄
    yakumo520
        4
    yakumo520  
       4 小时 19 分钟前
    想知道后续那个后端怎么处理的跨域(狗头)
    Monad
        5
    Monad  
       4 小时 19 分钟前 via iPhone
    你别说 如果是 server 开发来顶替 web 开发
    确实很多浏览器的行为不是很清楚
    lscho
        6
    lscho  
       4 小时 12 分钟前
    虽然我觉得很菜,但是部分螺丝钉企业还这能理解。。。因为跨域本身是浏览器的行为,如果部署的时候再用容器化技术,响应头都是运维来设置,开发测试的时候前端再用个反代,后端没接触过也正常
    Cruzz
        7
    Cruzz  
       4 小时 11 分钟前   ❤️ 5
    前端自己配个代理不就完事了么。自己解决就没那多 b 事了。
    giter
        8
    giter  
       4 小时 10 分钟前
    如果是纯后端,没有深度理解跨域也很正常,感觉很多跨域问题的帖子都是前端开发提出来的
    ufan0
        9
    ufan0  
       4 小时 8 分钟前
    其实大可不必如此,让生活美妙些!

    直接告诉他是跨域的问题让他解决即可,若知会过后仍来问你,再挂吧。
    musi
        10
    musi  
       4 小时 8 分钟前
    @Cruzz #7 6
    bestie
        11
    bestie  
       4 小时 3 分钟前
    @Cruzz #7 还是你懂
    ebushicao
        12
    ebushicao  
       3 小时 58 分钟前
    我多年前实习的时候也碰到过一个这种后端,技术拉完了,登录接口来个 url 参数传账号密码,还要明文。然后每天都会提到他的摸摸唱经历,还好那家公司一个月不到就倒闭了。

    一说又想起来,那老板也是奇葩,国外留学回来的一个女的,上来说什么武汉有几千万环卫...过于愚蠢我都没有插话。
    Incrus
        13
    Incrus  
       3 小时 57 分钟前
    这个为啥要截图发给后端开发?为什么部署到测试环境才发现跨域?不是开发环境就应该知道跨域了并通过 dev server proxy 解决了?测试生产配个 ng 反代自己解决就是了。你还心累上了🤪
    bli22ard
        14
    bli22ard  
       3 小时 55 分钟前
    有没有可能是你的问题
    ARIInV2
        15
    ARIInV2  
       3 小时 54 分钟前
    @programMrxu 咱们该叫啥来着
    ARIInV2
        16
    ARIInV2  
       3 小时 53 分钟前
    @Cruzz 确实,服务也应该前端写
    xxyang
        17
    xxyang  
       3 小时 50 分钟前
    add_header Access-Control-Allow-Origin *;
    add_header Access-Control-Allow-Headers *;
    add_header Access-Control-Allow-Methods *;
    X0V0X
        18
    X0V0X  
       3 小时 49 分钟前
    @Cruzz 然后上生产还是跨域,哥两一起加班
    YanSeven
        19
    YanSeven  
       3 小时 48 分钟前
    从描述上无法判断楼主是后端还是前端
    Garwih
        20
    Garwih  
       3 小时 47 分钟前   ❤️ 2
    才十几个回复就有好几个不懂的了,跨域问题让前端配代理🤣。
    AI 淘汰的人还是太少了。
    ronyin
        21
    ronyin  
       3 小时 45 分钟前
    这玩意对于 AI 就 1 分钟解决的事情。。
    lujiaosama
        22
    lujiaosama  
       3 小时 44 分钟前
    @xxyang 无条件放行,这么勇?
    xxyang
        23
    xxyang  
       3 小时 43 分钟前
    @lujiaosama 真的要搞你,岂是几个头能拦住
    lujiaosama
        24
    lujiaosama  
       3 小时 42 分钟前
    @xxyang 别的不说,至少对象存储得拦一下吧。
    xd666888
        25
    xd666888  
       3 小时 39 分钟前
    正确方法是前端配置代理+后端配置 nginx 转发解决跨域。所以这不是前后端两个人的问题么
    sagnitude
        26
    sagnitude  
       3 小时 34 分钟前
    @Garwih 测试环境本地 hosts 写个转发,本地 nginx 监听,转发的时候强行加个头,咋不行了,又不是发布环境,如果后端真不懂,你等他搞还真不如本地转发下
    andyskaura
        27
    andyskaura  
       3 小时 27 分钟前
    @Garwih op 是测试环境发现跨域,这样解决也没啥问题啊
    lscho
        28
    lscho  
       3 小时 25 分钟前   ❤️ 2
    @Garwih 感觉是你不懂,AI 淘汰的说不定就是你咯。。。

    开发环境下,跨域一直都是前端配置的,比如 vite/webpack 都提供的有配置
    上线之后,有 BFF 层的项目也是前端处理的。没有 BFF 层的还有一部分是运维处理的,真让后端处理的才是比较少的。

    而且因为有 access-control-allow-headers 这个配置,具体怎么配置,一定是有前端参与沟通的指定的,反而是后端不一定会管这个事。
    tf2
        29
    tf2  
       3 小时 24 分钟前
    不要笑。现在 AI 厂家原生支持跨域的有多少?

    甚至明明可以 API key <-> origin 双向绑定加强安全性的。
    zgsi
        30
    zgsi  
       3 小时 23 分钟前
    接口部署到了测试环境你不应该在本地代理测试环境或者也发到测试环境吗
    Cruzz
        31
    Cruzz  
       3 小时 16 分钟前
    @ARIInV2 #16 上纲上线来说,这是测试环境,如果你用测试环境页面访问测试环境接口跨域,找后端,找运维都没问题,自己本地连测试环境接口跨域不很正常,不解决不也正常?不上纲上线,你都说了他菜,费半天劲解决不了,浪费时间浪费精力,自己反代一下很困难么,不会就别说人家菜了。最烦 bb 赖赖的。越菜的 b 话越多。
    CHTuring
        32
    CHTuring  
       3 小时 14 分钟前   ❤️ 2
    @Cruzz #7 6 ,去养猪吧
    maichael
        33
    maichael  
       3 小时 12 分钟前   ❤️ 1
    - 如果你的应用本身只是小应用,用的人不多,那么你用「 BFF/反向代理」简易搭一个都没问题
    - 但是如果你的应用相对比较大,复杂度比较高,我觉得还是应该老老实实配置 CORS ,多一层「 BFF/反向代理」反而会带来很多麻烦,包括性能、成本,还有「代理」本身还需要监控、管理,错误排查链路更复杂,SSE 之类支持更复杂等,除非你真的需要「 BFF 」,不然的话,加多一个实体就是加多一层麻烦。
    shaozelin030405
        34
    shaozelin030405  
       3 小时 12 分钟前
    @Cruzz 配代理如果出了问题,会说你为什么配代理,导致安全扫描 balabala 有问题。还是得后端自己启动,前端不管,后端想办法去
    liumao
        35
    liumao  
       3 小时 7 分钟前
    合久必分,分久必合
    maichael
        36
    maichael  
       3 小时 7 分钟前
    另外,测试环境跟生产环境有架构上的差异会导致测试环境丢失很多它原来能起到的作用。
    yuanxiaosong
        37
    yuanxiaosong  
       3 小时 5 分钟前
    这玩意不都是运维搞吗,运维会在 nginx 处拦截,判断是否是公司域名或者白名单域名,使用“add_header Access-Control-Allow-Origin 请求域名;”设置跨域,并且还要使用"proxy_hide_header Access-Control-Allow-Origin;"隐藏后端返回的跨域,防止双重跨域并且禁止使用*设置跨域值。
    Cenat
        38
    Cenat  
       3 小时 5 分钟前   ❤️ 5
    要么一直做前后端同源的项目
    要么大公司出来的,这种事情有 SRE 来负责
    要么做的项目 nginx 反代 cors 配置都是别人弄好了 不需要他关心
    我也不知道楼里在优越什么。。。
    Sezxy
        39
    Sezxy  
       3 小时 2 分钟前
    日常前端吐槽后端不懂 CORS
    Garwih
        40
    Garwih  
       3 小时 1 分钟前
    @sagnitude
    @andyskaura
    @lscho #28 楼主都说了上测试环境了,明显开发环境已经配了反向代理。测试环境还让前端用 vite/webpack 配代理就是完全不懂 CORS 。作为 Web 后端不懂 CORS ,要么就是纯螺丝钉,工作过的公司都是运维弄好。要么就是菜了。
    yuanxiaosong
        41
    yuanxiaosong  
       2 小时 59 分钟前
    正式、开发和测试环境跨域由运维配置,前端本地联调两个方案:
    1. 让运维把 localhost/127.0.0.1 加白名单;
    2. 前端自己启动一个 nginx 再反代;
    如果公司有明确的运维,除非你直接调用后端服务,不走任何代理,否则跨域不该后端管(我司后端在代码中手动写跨域也不生效),后端兼管反代程序的另算;
    CHTuring
        42
    CHTuring  
       2 小时 56 分钟前
    @X0V0X #18 可能他们不需要上生产、也不需要发测试,本地写好就可以了。请访问 http://localhost:5173
    giter
        43
    giter  
       2 小时 56 分钟前
    @Cenat 正解,很多人以为自己遇到过跨域问题并且解决了跨域问题,就想当然以为别家公司也有很多人应该懂,从来没去考虑过为啥很多人都不懂,难道大家伙天天都要面对跨域这个问题吗?有些操作后端开发其实都不需要处理的,不懂也正常,不要简单套用自己的规则强加给别的开发
    angeni
        44
    angeni  
       2 小时 55 分钟前
    我也不是懂哥什么都懂,但是我感觉都是打个螺丝没必要比谁更专业。

    一个茅坑能有不同物种的大便吗?
    guansixu
        45
    guansixu  
    OP
       2 小时 52 分钟前
    @yakumo520 我找运维给把页面配置到接口的同一个域名和端口下面了
    andyskaura
        46
    andyskaura  
       2 小时 50 分钟前
    @Garwih #40 你的主题已经飘了,以及,跨域问题你聊到反向代理,vite/webpack ,有一定联系,但还是很奇怪,不太确定。 建议你多回复几条大家再看看
    rich1e
        47
    rich1e  
       2 小时 49 分钟前   ❤️ 1
    有些后端不是一般的菜,例如:

    - 公司后端写的接口部署到测试环境了,访问之后发现跨域了 [测试环境跨域,后端部署之前不检查吗?]
    - 把浏览器的跨域截图发给后端开发,问我报什么错了? [娘 xp ,都 2026 年,跨域报错都看不懂?]

    楼上还有说,本地配置代理?你 tm ,真是个人才。

    现在都 2026 年,后端不懂跨域,理所应当?
    bzj
        48
    bzj  
       2 小时 46 分钟前
    标准方案就是前端自己配代理服务,前端既然要搞工程化就要解决这种问题,后端不仅不用帮你解决跨域而且还要限制死,毕竟这是运维的事
    flytsuki
        49
    flytsuki  
       2 小时 44 分钟前
    后端能解决,前端也能解决,看谁去解决
    hushuikun
        50
    hushuikun  
       2 小时 43 分钟前
    前后端互相看不起,那看看谁先被 AI 淘汰咯
    bzj
        51
    bzj  
       2 小时 41 分钟前
    @lscho #28 有时候感觉前端挺迷惑的,本来专心写写页面改改样式就好了,数据就让前后端联调,他们非要搞一套工程化,一上来就安装各种服务各种包,越搞越复杂,但是稍微涉及到点原理的他们又理解不了
    635925926
        52
    635925926  
       2 小时 39 分钟前
    @Cruzz #31 上纲上线来说,测试环境出的问题不解决,反而取巧,正式仍然会出问题。
    YanSeven
        53
    YanSeven  
       2 小时 36 分钟前
    @hushuikun 在这种问题上还能吵几十层楼,说明全部都应该被干碎淘汰,愚蠢的碳基人类。
    plp
        54
    plp  
       2 小时 36 分钟前
    不知道为什么很多人有优越感 很多大公司大项目复杂度高 有专门一个团队来做 项目部署上线 服务器管理与交互
    一般开发者不懂不是很正常 还是说大家都是做小项目全栈一把梭?没有任何分工?
    shadowyue
        55
    shadowyue  
       2 小时 34 分钟前
    哈,看我这个 800+收藏的老帖子就知道了😂
    https://www.v2ex.com/t/1056504
    stinkytofux
        56
    stinkytofux  
       2 小时 33 分钟前
    stinkytofux
        57
    stinkytofux  
       2 小时 33 分钟前
    adoal
        58
    adoal  
       2 小时 30 分钟前
    因为跨域问题在部署环节解决比较合理,反代/LB 上做个配置就行了,不必把问题扩散到后端开发业务功能的环节。

    现实中哪怕是在眉毛胡子一把抓的小公司,做业务功能开发的一般对操作系统 API 、网络、现成基础设施的熟悉程度都比较低。早些年遇到一些这种类型公司的开发者来做项目,他们的程序员很倾向于什么需求都“开发”,但我更希望他们能尽量用好基础设施,能用运维手段解决的就不要写到业务代码里去。
    yuhangch
        59
    yuhangch  
       2 小时 28 分钟前
    vue dev server 的 proxy 不就完事了,大家在聊啥啊
    JYii
        60
    JYii  
       2 小时 27 分钟前
    搞了半天还是要运维去解决,吐槽后端干什么呢,后端有权限修改 nginx 解决?
    Garwih
        61
    Garwih  
       2 小时 25 分钟前
    @andyskaura #46 开发环境用 vite/webpack 配置 proxy 就是本地 node.js 开发服务器的反向代理。
    部署到测试环境之前,要么用 CI/CD 工具自动化打包,要么前端手动打包,最后提交到测试服务器只会有静态文件。
    楼上很多让前端在测试环境配置代理的,至少一大半都觉得前端可以用 vite/webpack 配置来解决这个问题。什么草台班子会在测试服务器安装 vite/webpack 还启动开发服务器做代理?
    Web 后端在纯螺丝钉的工作流程中,有运维处理这种问题,没配过可以理解。但是工作多年多多少少会遇到过这种问题,连跨域报错都看不懂,这是一个合格的 Web 后端?
    lujiaosama
        62
    lujiaosama  
       2 小时 16 分钟前
    这东西不是在 nginx 里反向代理,转发请求给到后端服务?后端服务看看是不是监听在 0.0.0.0.问题在于 nginx 在哪里配置的问题罢了。
    z15679769443
        63
    z15679769443  
       2 小时 4 分钟前
    还在这分前后端呢,各位早些走全干路线吧
    0x100
        64
    0x100  
       1 小时 59 分钟前
    看了下时间,确实是 2026 年
    Ma1agu
        65
    Ma1agu  
       1 小时 58 分钟前
    https://www.v2ex.com/t/1056504#reply272
    不懂的来这里学习一下😂
    andyskaura
        66
    andyskaura  
       1 小时 53 分钟前
    @Garwih #61 不好意思 刚刚戾气重,先道个歉。
    你说的这种场景下确实不应该前端配,毕竟和前端没关系了。
    但 op 说的是接口部署到测试环境,理解上有偏差。
    最后 我支持你的观点,专职 web 的后端必须要理解跨域。
    duan602728596
        67
    duan602728596  
       1 小时 48 分钟前
    直接上 BFF 算了,给那帮菜鸡擦屁股又不是一次两次了。都 2026 年了,还以为前端完全不懂后端,就能把锅全给前端是吧
    florentino
        68
    florentino  
       1 小时 46 分钟前
    你这话说的, 那 claude 把源代码打包 push 上去的,算什么,还两次,低频次的问题花点时间解决有什么问题吗? 又不是每天都能遇到跨域问题,可能职业生涯也就能遇到 2,3 次需要后端自己解决配置跨域
    lenglengyuchen
        69
    lenglengyuchen  
       1 小时 25 分钟前 via Android
    发消息只发截图吗
    artiga033
        70
    artiga033  
       1 小时 2 分钟前 via Android
    @xxyang 但是通配符会拦住你自己: https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/CORS/Errors/CORSNotSupportingCredentials

    看来今年真的不是 2026 年啊
    realpg
        71
    realpg  
    PRO
       52 分钟前
    你们后端 api server 的需求分析里面没有跨域相关参数的配置项开关和支持的域名么

    如果没有,那就上会轮需求分析人员呗

    跟开发较什么劲
    dajj
        72
    dajj  
       51 分钟前
    俺一直不理解,不是前端早就可以全栈了吗,难道用 nodejs 转发下请求都不行吗
    mingtdlb
        73
    mingtdlb  
       34 分钟前
    这不是 nginx 上配置一下就可以了么?我们当时是这样操作
    QS0x01
        74
    QS0x01  
       18 分钟前
    这不应该由前端自己解决吗,开发有 vite 生产有 nginx ,不然后端天天改白名单。
    meeop
        75
    meeop  
       15 分钟前
    在大厂,其实我也至今不知道怎么解决跨域。因为前端到我具体服务后端套了 n 层服务和网关,我也不知道中间哪一层拦截的,找谁或者找哪个服务配置,或者具体怎么配置
    SimbaPeng
        76
    SimbaPeng  
       10 分钟前
    前端眼里的后端:产品+运维+后端,深有体会
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   5348 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 188ms · UTC 05:51 · PVG 13:51 · LAX 22:51 · JFK 01:51
    ♥ Do have faith in what you're doing.