8 年+应该懂跨域问题吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
devhxy
V2EX    程序员

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

  devhxy 2025 年 5 月 15 日 15449 次点击
这是一个创建于 278 天前的主题,其中的信息可能已经有所发展或是发生改变。
作为一个面试官,我面试尽量规避八股文,可现实接触到很多后端开发说我只负责 api 开发,项目中没有开发过 web ,但是简历里面又说熟悉 Vue,React 等,

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

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

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


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

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

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

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

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

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

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

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

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

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

比如我作为客户端没写过后端是可以想象后端的数据链路的 哪里需要 mq 哪里需要 async job
我可能不知道 rocketmq 和 kafka 的区别 但我知道这里是个 queue
我可能不知道 load balancer 到底用的哪种 但我应该可以知道哪里用到 碰到问题可以指挥去顺着查是不是某个 shard 炸了
不能这么多年还可以觉得后端是个盲盒吧 发请求等结果就好了?
xueyuehua
    92
xueyuehua  
   2025 年 5 月 15 日
我一直不明白同源策略这玩意有什么意义,导致跨域那我一定会去让它允许跨域啊,而且通常还都是运行所有访问的
prodcd
    93
prodcd  
   2025 年 5 月 15 日
有的人,只是一个技术用了 8 年,只能说明时间的长度,不能说明知识面的广度。
southsala
    94
southsala  
   2025 年 5 月 15 日
跨域对后端没那么重要,整个职业生涯都可能都不会遇到。
对前端反而很重要,开发阶段第一件事就是解决本地跨域问题。
如果说简历写熟悉 Vue 这些,不知道什么是跨域那纯属吹牛逼了。
runlongyao2
    95
runlongyao2  
   2025 年 5 月 15 日
这是国内开发流程的弊病,导致前后端彻底分开了。国外的开发更全面点,所以对主要职能以外的知识会接触更多
freezebreze
    96
freezebreze  
   2025 年 5 月 15 日
6 ,这个问题我觉得至少得说出来跨域是浏览器的机制吧,同源策略这些,或者直接问他为什么 js 脚本请求报跨域错误但是直接访问没有报这个错误
jayasme
    97
jayasme  
   2025 年 5 月 15 日
熟悉前端框架并不一定就会遇到跨域问题,可能很多时候就是别人写好的后端直接调用就行了,不会遇到,我觉得与其考懂得某个知识,不如考解决问题的能力,即遇到一个陌生的问题,能自行搜索并善用工具来解决,这个才是最重要的
crysislinux
    98
crysislinux  
   2025 年 5 月 15 日 via Android
跨域在浏览器端还有很多细节问题的,不仅仅是那几个 http header 的事
shadowyue
    99
shadowyue  
   2025 年 5 月 15 日
@onlywyj #14
我说怎么今天这个帖子怎么被收藏了 100+,好家伙
expy
    100
expy  
   2025 年 5 月 15 日
@xueyuehua
浏览器的安全策略啊,不然所有网站都能互相乱调接口了。
1  2  
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1975 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 37ms UTC 13:02 PVG 21:02 LAX 05:02 JFK 08:02
Do have faith in what you're doing.
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86