Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
3.2k views
in Technique[技术] by (71.8m points)

为什么服务端能处理跨域问题?

我看了一些关于跨域的文章,文章中有说到"跨域,是指浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript实施的安全限制。"

"所谓的同源是指,域名、协议、端口均为相同。"

例子:

用户在访问https://www.aaa.com 时执行网站的js文件ajax请求https://www.aaa.com:8080/user/getInfo

根据这些定义,因为端口不同所以这个ajax请求跨域了,会被浏览器的同源策略拦截,这时就需要在前端代码中做处理。
但是服务端是不知道每个来自客户端的请求是否跨域,所以服务端是没有办法处理跨域问题的

但事实是服务端可以处理跨域问题,Java中的SpringBoot框架就有提供对跨域的配置。

所以想问下各位是我哪一步理解错了,学艺不精还请指教


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

服务端是规则的制定者,不需要知道请求是否跨域。
只需要通过Access-Control-Allow-Origin告诉浏览器这个请求在这个域名下能不能被调用。
不能调用的请求浏览器自己会拦截。


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share
...