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

8 年+应该懂跨域问题吗?

  •  
  •   devhxy · 16 小时 40 分钟前 · 7752 次点击
    作为一个面试官,我面试尽量规避八股文,可现实接触到很多后端开发说我只负责 api 开发,项目中没有开发过 web ,但是简历里面又说熟悉 Vue,React 等,

    虽说目前开发模式都是前后端分离,这类问题确实不需要他这个岗位去解决,有运维有架构去解决这些系统层面的问题,我还是象征性的问了下什么是跨域?答案完全不在点上!

    这能算卷吗?
    113 条回复    2025-05-16 02:23:48 +08:00
    1  2  
    imokkkk
        1
    imokkkk  
       16 小时 36 分钟前
    虽然 8 年+,但总是从 1 年 2 年经验过来的 跨域不懂说不过去
    Razio
        2
    Razio  
       16 小时 36 分钟前
    挺正常的吧,习惯就好。理解尊重,继续面下一个。
    concernedz
        3
    concernedz  
       16 小时 34 分钟前
    你让我解释,我还真不知道咋说,我只知道摘代码里加上或者 nginx 上配
    andyshz
        4
    andyshz  
       16 小时 33 分钟前
    这个问题我会,招我吧
    liudewa
        5
    liudewa  
       16 小时 33 分钟前
    我懂跨域 也没面试的
    concernedz
        6
    concernedz  
       16 小时 32 分钟前
    @concernedz 以我现在的记忆,网站 windows.location.hostname 和请求接口的域名不一致,都要处理
    coolcoffee
        7
    coolcoffee  
       16 小时 32 分钟前
    只要写过一次简单的 todo list ,就应该能明白为什么要跨域以及怎么跨域。
    luchenwei9266
        8
    luchenwei9266  
       16 小时 30 分钟前   ❤️ 2
    我一般不问,但是如果看到他简历上有写相关字眼,我就会随便问一句。
    只是我没想到的是,居然很多人回答跨域是服务器的行为。。。
    liudewa
        9
    liudewa  
       16 小时 27 分钟前
    @coolcoffee #7 todolist 和跨域有什么关系
    lyxxxh2
        10
    lyxxxh2  
       16 小时 27 分钟前   ❤️ 1
    @luchenwei9266
    服务器返回的正确响应包,接口就正常了。
    导致他们认为是服务器的原因。
    devhxy
        11
    devhxy  
    OP
       16 小时 26 分钟前   ❤️ 1
    @luchenwei9266 同感!
    lambdaq
        12
    lambdaq  
       16 小时 25 分钟前   ❤️ 1
    这个是拧螺丝没涉及到这一块工序。。。。
    onlywyj
        13
    onlywyj  
       16 小时 24 分钟前
    之前站里讨论跨域的帖子,还特别收藏了
    onlywyj
        14
    onlywyj  
       16 小时 23 分钟前   ❤️ 3
    lululau
        15
    lululau  
       16 小时 21 分钟前   ❤️ 2
    做后端的有可能不是做 web 相关开发的,不知道很正常
    做前端的有可能是主要做移动平台 app 开发的,不知道也很正常
    coolcoffee
        16
    coolcoffee  
       16 小时 20 分钟前
    @liudewa 写一个纯前端的 todolist 项目涉及到调用后端的 CURD ,这里面就一定会触发跨域报错。
    k9982874
        17
    k9982874  
       16 小时 18 分钟前 via Android
    阿里华为出来的确实有可能不懂
    dcsuibian
        18
    dcsuibian  
       16 小时 18 分钟前   ❤️ 1
    我的理解:
    我知道协议、ip/域名、端口不同时容易产生跨域
    但具体的请求流程,什么是简单/非简单请求我也一下子答不上来了
    反正我感觉解决跨域的方法只有两个
    1 、让他不要跨域,nginx 反向代理和前端的 devServer 都是这种原理
    2 、设置请求头(只有在确实信任对方域的情况下使用)

    如果一个人回答:只要在后端 Spring Boot 上加个注解就好了
    那我感觉他是完全没有想过浏览器为啥要加跨域限制
    liudewa
        19
    liudewa  
       16 小时 17 分钟前
    @coolcoffee #16 纯前端了 还要调后端接口? 关键你用 vue react 这些配置代理,一般新人还真联想不到跨域
    rekulas
        20
    rekulas  
       16 小时 17 分钟前
    这不算八股文,这些都是实际工作中需要用到的知识,这种基础的都没概念直接 pass 就行了
    devhxy
        21
    devhxy  
    OP
       16 小时 16 分钟前
    @onlywyj 其实只是想问下跨域是怎么产生的,没想问那么深,后续该由谁来解决这类问题,也算是考察同事工作配合问题
    wunonglin
        22
    wunonglin  
       16 小时 8 分钟前
    我实在不知道对于 8 年+涉及前后端开发的工程师对跨域这个问题会吵成这样。。。。。
    kaedeair
        23
    kaedeair  
       16 小时 2 分钟前
    跨域是浏览器的安全策略,应该算 web 前端的基础知识
    Corrots
        24
    Corrots  
       16 小时 2 分钟前
    你要让我答我也无法系统完整的回答,估计也就说个浏览器的同源策略,主要是安全方面的防护
    hwdq0012
        25
    hwdq0012  
       15 小时 58 分钟前
    我一个桌面开发都知道跨域问题,不过我是学.net core 时知道的, 后面学 kubernetes 又知道一次,单纯会 web 前端,可能真的不知道
    craftsmanship
        26
    craftsmanship  
       15 小时 57 分钟前 via Android
    @kaedeair 应该算 HTTP 的一部分 虽然主要部分在浏览器 但也需要服务端配合设置相关响应头才行啊
    hwdq0012
        27
    hwdq0012  
       15 小时 56 分钟前
    URL 结果 原因
    http://store.company.com/dir2/other.html 同源 只有路径不同
    http://store.company.com/dir/inner/another.html 同源 只有路径不同
    https://store.company.com/secure.html 失败 协议不同
    http://store.company.com:81/dir/etc.html 失败 端口不同 ( http:// 默认端口是 80)
    http://news.company.com/dir/other.html 失败 主机不同
    hwdq0012
        28
    hwdq0012  
       15 小时 56 分钟前
    craftsmanship
        29
    craftsmanship  
       15 小时 56 分钟前 via Android
    @hwdq0012 Web 前端不可能不知道 现代浏览器的 Web 安全策略中跨域是核心之一
    anviod
        30
    anviod  
       15 小时 56 分钟前   ❤️ 14
    新手期:😱 这个报错是什么妖术?
    成长期:🧐 原来要加 Access-Control-Allow-Origin
    老手期:😌 在 nginx.conf 里加三行,下班!
    新手到老手需要大概 5 分钟时间 感觉跨越就像挖鼻屎一样, 长出来鼻屎,挖一下就行了, 没有必要深挖跨域是什么了...
    就像你挖了鼻屎不会拿在手上看了...
    hwdq0012
        31
    hwdq0012  
       15 小时 53 分钟前
    @craftsmanship 其他框架不太清楚,.net core 在 server 端配置好跨域策略,前端就不用管了
    sampeng
        32
    sampeng  
       15 小时 48 分钟前
    这其实就是看你是要 curd boy 还是对人的能力稍微有点要求了。前者无所谓,后者直接下一个。
    我面试但凡说不用 google 的(没梯子,不尝试弄梯子),无论简历多好,我是直接下一个。
    justdoit123
        33
    justdoit123  
       15 小时 44 分钟前
    问跨域问题不算卷。我感觉这算是前端基础之一,而且是工作中会遇到的。比问 vue/react 这些上层框架重要。


    说个题外话,我帮人看问题时会发现,对方毫无解决思路。反正不行了,就找你。
    “你参数核对了没有?”
    “日志看了没有?”
    “什么?没写日志?”
    “你之前做了什么尝试?有什么思路?”

    招人真是挺难的。
    wxw752
        34
    wxw752  
       15 小时 43 分钟前
    面试是一个与人沟通的过程,8 年的老程序员怎么也应该听说过这个了,语气诚恳的把知道的都说出来我认为就 OK 。

    一点不知道很是奇怪,对计算机没有热爱的人没办法通过我这层面试。
    kaedeair
        35
    kaedeair  
       15 小时 42 分钟前
    @craftsmanship #26 大部分情况是前端要求加上这个响应头,如果后端不去追究原因,这事也就过了
    lymanbernadette6
        36
    lymanbernadette6  
       15 小时 38 分钟前
    @anviod #30 生动形象 但是我真的挖了鼻屎会看一下。
    coderlxm
        37
    coderlxm  
       15 小时 31 分钟前 via Android
    真是造孽啊,跨域是应届生都知道的东西
    461229187
        38
    461229187  
       15 小时 1 分钟前
    跨域太常见了,这应该是基本常识了
    darksword21
        39
    darksword21  
       14 小时 57 分钟前
    @sampeng 这个是真的,前两天和一个在我之后几天入职的哥们聊问题他熟练的打开百度我的心瞬间凉了半截,第二周他就被开了
    lwldcr
        40
    lwldcr  
       14 小时 55 分钟前
    没有跟前端协作开发 单纯一直做后台的话 还真有可能不接触这个
    但是怎么说这个也算一个很基本的知识点 8 年不应该不知道
    NerbraskaGuy
        41
    NerbraskaGuy  
       14 小时 47 分钟前
    有的公司跨域配置是运维处理的,然后开发过程中也大多是前端本地代理,所以很多后端不知道跨域蛮常见的(虽然这个现象不正常)
    SanjinGG
        42
    SanjinGG  
       14 小时 41 分钟前 via Android
    只要做过 api 基本都知道吧
    liudewa
        43
    liudewa  
       14 小时 40 分钟前
    @darksword21 #39 我开始还鄙视 msdn 呢 现在装了插件 ,发现真香
    mingtdlb
        44
    mingtdlb  
       14 小时 36 分钟前   ❤️ 1
    有经历没经验大有人在。还有我认为会看文档+有研究过技术并落地,比啥都重要。

    那么多知识,谁 TM 的记得住,知道个大概可还行。
    realpg
        45
    realpg  
       14 小时 29 分钟前
    我只能说 8 年连跨域都不懂 说明对技术/开发一点热情都没有
    janus77
        46
    janus77  
       14 小时 26 分钟前
    8 年的意思是,他也懂 8 年前的知识。如果他答不上来,可以认为他不懂 8 年前的知识。
    jingdongkehu
        47
    jingdongkehu  
       14 小时 24 分钟前
    写了熟悉 vue react 不懂不正常
    ooxiaoming
        48
    ooxiaoming  
       14 小时 10 分钟前
    8 年不代表经验有 8 年吧
    jsq2627
        49
    jsq2627  
       14 小时 10 分钟前 via iPhone
    pass 就行了
    作为前端,遇到那种 CORS 都搞不明白的后端,合作起来别提有多费劲。
    1252603486
        50
    1252603486  
       14 小时 9 分钟前
    好比是电工一样,顺口给你背一堆公式的,绝对不是真的干电工的,人家电工上手就干活了,老手都忘记啥原理了,直接几个东西一配就解决问题了
    NoobNoob030
        51
    NoobNoob030  
       14 小时 3 分钟前
    属于是基本常识
    hefish
        52
    hefish  
       13 小时 57 分钟前
    我特么 28 年工龄的人都不懂啊。。。
    zzzyyysss
        53
    zzzyyysss  
       13 小时 56 分钟前
    只要是开发 涉及 web 一定会遇到跨域,不知道原因说明就是纯混。很多时候还是要知其然,知其所以然的。
    跨域我感觉是一个很好的考察点,从知道怎么解决,到知道原理,哪些方法为什么能解决。
    devhxy
        54
    devhxy  
    OP
       13 小时 48 分钟前
    @jsq2627 想考察的就是协作配合解决问题的能力,多嘴问了句😅
    249239432
        55
    249239432  
       13 小时 46 分钟前
    只能说面试者忽悠面试官的水平千奇百怪,防不胜防
    我司某地,招了个技术总监,他在大群里面说 nginx 可以防爬虫,群里都沉默了
    干了一年忽悠不下去被 T 了
    arron2022
        56
    arron2022  
       13 小时 45 分钟前
    这个确实应该啊,讲道理按说这种八股文必考题,每次面试准备都应该复习都看一遍也能记吧
    lizhian
        57
    lizhian  
       13 小时 43 分钟前
    应该
    gotonull
        58
    gotonull  
       13 小时 42 分钟前
    确实,我也喜欢问跨域和 https 刷人,跨域答不出来的直接 pass ,https 能答出来算加分。很多人都只会那些高频八股和纯 crud ,我感觉跨域工作中遇到的还是很多。
    yjxjn
        59
    yjxjn  
       13 小时 40 分钟前
    @mingtdlb 我也是这个想法,东西太多,我记不住,但是我知道应该怎么做,网上搜一搜写出来就行了。
    qzhai
        60
    qzhai  
       13 小时 30 分钟前
    本人前端,之前面试过一些人觉得离谱就在某网上分享了一下,面试的 5 年+前端连 jpg 不能透明都不知道。然后网上一堆前端喷我。。。说不知道不影响工作。。还说我装。。 这个行业就是因为这样的傻逼太多了,所以现在乌烟瘴气的
    justdoit123
        61
    justdoit123  
       13 小时 30 分钟前
    @249239432 哈哈~ 这样的牛人
    uds9u32br
        62
    uds9u32br  
       13 小时 13 分钟前
    面试最爱问的问题之一,不管应届还是 5 年+能讲出来的屈指可数。
    dyyhobby
        63
    dyyhobby  
       13 小时 12 分钟前
    以前我招人面试的时候不论前端后端都会问一个问题

    一个网页从输入网址开始到看到界面具体都发生了哪些事情。

    实际上能说个差不多的占比 10%吧,那 10%的人干活基本不用我操心。
    bianYuX
        64
    bianYuX  
       13 小时 4 分钟前
    像跨域这种问题,每次看到都很懵逼,感觉自己会,但是又不能说明白。
    Fooooo0
        65
    Fooooo0  
       13 小时 1 分钟前
    @dyyhobby 不少开发人员还鄙视问这种问题的面试官呢。
    249239432
        66
    249239432  
       12 小时 56 分钟前
    @dyyhobby 这个涉及到 windows 以及硬件信息了,有这么丰富的系统知识的现在出来的程序员可不多啊
    Mogugugugu
        67
    Mogugugugu  
       12 小时 54 分钟前
    能知道同源策略的就不错了,这些题目在现阶段的意义在我理解来说,就同样要问 AI 的话,有人 10 个 request 就解决问题了,有人 100 个 request 才解决问题,中间还产生了一堆的废代码,这就是水平的差距。
    chesha1
        68
    chesha1  
       12 小时 53 分钟前
    打螺丝没打到这边,不会也很正常,回想一下我自己的前端经历:
    - 公司项目是有完整基建的,要调啥接口直接访问同域名的 path 就完了,可能有什么 nginx 上的配置,第一次部署 deployment 的人做的,也不要我自己操作
    - 自己的项目用 nextjs 一把梭,用的全是 cloudflare 的服务,接口走的是 cf 自己的 rpc 接口,也根本不会出现跨域问题

    这样下去我再写 5 年前端可能对跨域问题的理解还停留在应届生水平
    kakakakaka8889
        69
    kakakakaka8889  
       12 小时 52 分钟前
    跨域这算是前端基础了,后端无非就是加个注解或者 ng 配一下
    bbao
        70
    bbao  
       12 小时 42 分钟前
    我们的前端从来不解决跨域问题,如果要让他们解决,就在开发调试周期的过程中,本地开一个解决跨域的代理;

    上线后 在 ingress 里解决或者 nginx 解决。
    liqingyou2093
        71
    liqingyou2093  
       12 小时 40 分钟前
    ... 我以为就是字面意思呢,跨过不同的域名受限制
    zpf124
        72
    zpf124  
       12 小时 39 分钟前
    分工拆的很细之后确实有许多志不在此,纯为谋生的人,对相关联的其它知识完全没去了解过,你问道他他说不知道页不奇怪。

    但我觉得人得对自己负责,简历上写了的最起码得简单了解,这已经是很低的标准了,连这都做不到,那还不如培训班刚毕业的呢。
    chairuosen
        73
    chairuosen  
       12 小时 39 分钟前
    跨域不是一个技术层面难点,而是实际工作中肯定会遇到的一个坑,问跨域可以看是不是写过最上层的业务,另外可以稍微看一下技术广度,毕竟这是前端范畴了。
    DinnyXu
        74
    DinnyXu  
       12 小时 33 分钟前
    你问的这个是没问题的,现在招聘都要求综合能力强点,不要求你在非专业领域多么厉害,不具备解决问题的能力,但是解决问题的思路要有,用一句话形容跨域,是指在浏览器中,一个网页试图访问与自身域名、协议或端口不同的另一个域的资源,受到同源策略限制。
    vkillwucy
        75
    vkillwucy  
       12 小时 25 分钟前 via Android
    本身就是一个浏览器行为
    ca2oh4
        76
    ca2oh4  
       12 小时 23 分钟前
    尊重,理解,下一位
    pkoukk
        77
    pkoukk  
       12 小时 23 分钟前
    中间有网关的话,一般的后端开发确实碰不上跨域问题
    MRG0
        78
    MRG0  
       12 小时 19 分钟前
    让后端搞一下
    lqt19910205
        79
    lqt19910205  
       12 小时 14 分钟前
    下一位
    lqu3j
        80
    lqu3j  
       12 小时 14 分钟前
    话说问一下标准答案是什么? 我感觉我也一瞬间答不上来
    就我理解来说前端调试的时候会出现跨域,一般后端加上以下可以解决
    Access-Control-Allow-Methods
    Access-Control-Allow-Credentials
    Access-Control-Allow-Origin
    Access-Control-Allow-Headers

    但是我记得 chrome 某次更新 samesite 默认策略后,也会导致调试的时候出现跨域问题的。 然后前端加代理?
    garychenlin
        81
    garychenlin  
       12 小时 12 分钟前
    我就是后端没做过 web ,不懂跨域。偶然一次和前端对接遇到了跨域问题,我不懂但前端的同事懂,那我就听他的弄个 nginx 反向代理就解决了,不过至今也没去了解啥是跨域也没有再遇到过这类问题。
    Erroad
        82
    Erroad  
       12 小时 9 分钟前
    完全不在点上不应该,但要答得特别具体不太可能。干后端八年总共遇上三次需要处理跨域
    xx6412223
        83
    xx6412223  
       11 小时 52 分钟前
    不是阻止请求,是请求返回后,检查 response header 后又阻止后续用户代码读取了
    mkt
        84
    mkt  
       11 小时 51 分钟前
    遇到跨域问题了,我会告诉你咋办,但是你要问我跨域是什么?我会说你不会百度啊。
    imnpc
        85
    imnpc  
       11 小时 48 分钟前
    后端 蛞蝓问题就遇到 1 次 后面直接在框架上默认启用支持跨域
    noyidoit
        86
    noyidoit  
       11 小时 33 分钟前
    如果之前的工作经历需要和浏览器打交道,干了 8 年还不懂这个问题,我能想到的所有可能性都会指向不好的信号
    cocong
        87
    cocong  
       11 小时 32 分钟前
    说都有只是盲区,不能只看一个问题,有 80% 答对就不错了。
    canvascat
        88
    canvascat  
       11 小时 26 分钟前
    这不是工作中经常会遇到的问题吗?一点也不八股文,能回答出是怎么怎么解决就行
    hanyuwei70
        89
    hanyuwei70  
       11 小时 18 分钟前
    因为这个一般归后端甚至 sec 管,所以前端不了解我觉得也正常,没听过不正常。
    dawnven
        90
    dawnven  
       11 小时 10 分钟前
    这个问题我会,招我吧,面试都少,坐标深圳
    20015jjw
        91
    20015jjw  
       11 小时 10 分钟前 via iPhone
    我感觉可以不懂细节 但你不能一点都不知道

    比如我作为客户端没写过后端是可以想象后端的数据链路的 哪里需要 mq 哪里需要 async job
    我可能不知道 rocketmq 和 kafka 的区别 但我知道这里是个 queue
    我可能不知道 load balancer 到底用的哪种 但我应该可以知道哪里用到 碰到问题可以指挥去顺着查是不是某个 shard 炸了
    不能这么多年还可以觉得后端是个盲盒吧 发请求等结果就好了?
    xueyuehua
        92
    xueyuehua  
       10 小时 25 分钟前
    我一直不明白同源策略这玩意有什么意义,导致跨域那我一定会去让它允许跨域啊,而且通常还都是运行所有访问的
    prodcd
        93
    prodcd  
       10 小时 23 分钟前
    有的人,只是一个技术用了 8 年,只能说明时间的长度,不能说明知识面的广度。
    southsala
        94
    southsala  
       10 小时 18 分钟前
    跨域对后端没那么重要,整个职业生涯都可能都不会遇到。
    对前端反而很重要,开发阶段第一件事就是解决本地跨域问题。
    如果说简历写熟悉 Vue 这些,不知道什么是跨域那纯属吹牛逼了。
    runlongyao2
        95
    runlongyao2  
       10 小时 17 分钟前
    这是国内开发流程的弊病,导致前后端彻底分开了。国外的开发更全面点,所以对主要职能以外的知识会接触更多
    freezebreze
        96
    freezebreze  
       10 小时 10 分钟前
    6 ,这个问题我觉得至少得说出来跨域是浏览器的机制吧,同源策略这些,或者直接问他为什么 js 脚本请求报跨域错误但是直接访问没有报这个错误
    jayasme
        97
    jayasme  
       10 小时 10 分钟前
    熟悉前端框架并不一定就会遇到跨域问题,可能很多时候就是别人写好的后端直接调用就行了,不会遇到,我觉得与其考懂得某个知识,不如考解决问题的能力,即遇到一个陌生的问题,能自行搜索并善用工具来解决,这个才是最重要的
    crysislinux
        98
    crysislinux  
       10 小时 7 分钟前 via Android
    跨域在浏览器端还有很多细节问题的,不仅仅是那几个 http header 的事
    shadowyue
        99
    shadowyue  
       10 小时 2 分钟前
    @onlywyj #14
    😂我说怎么今天这个帖子怎么被收藏了 100+,好家伙
    expy
        100
    expy  
       9 小时 29 分钟前
    @xueyuehua
    浏览器的安全策略啊,不然所有网站都能互相乱调接口了。
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   941 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 20:17 · PVG 04:17 · LAX 13:17 · JFK 16:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.