大佬们,帮忙解答下关于前端跨域问题的疑惑

2019-07-25 16:43:16 +08:00
 realfex

浏览器存在跨域问题的根源在于浏览器的同源策略

同源策略对于 ajax 这块,应该本意是不希望浏览器端 js 在未经允许的情况下随意调用非同源的接口发送和获取数据

某些解决方案例如 jsonp、cors 其实都是需要服务端配合才能实现,相当于是需要服务端的许可,所以很合理,并不违反同源策略的初衷

但是对于代理这种方式,前端现在做项目离不开各种 node 环境,而在 node 环境里,不管是用各种 proxy 插件还是自己本地启个 server 来请求别人接口,再把数据转发给前端来绕过跨域,都是极其方便的,且不需要经过接口端的任何允许

那么同源策略关于 ajax 这块的限制,是不是形同虚设?还有什么意义吗?

可能我了解的不够,望大佬解惑

2416 次点击
所在节点    前端开发
4 条回复
meepo3927
2019-07-25 18:47:46 +08:00
个人认为,不是形同虚设。

意义在于,它让浏览器避免成为跨域攻击的工具,尽量确保环境安全。

proxy 跨域攻击是有人故意为之,

浏览器如果能跨域攻击,那么广大的网民可能也成为"攻击者"。
momocraft
2019-07-25 19:04:41 +08:00
你自己架服务器当然随便允许,不管用什么语言
这不叫形同虚设
maichael
2019-07-25 19:11:45 +08:00
“但是对于代理这种方式,前端现在做项目离不开各种 node 环境,而在 node 环境里,不管是用各种 proxy 插件还是自己本地启个 server 来请求别人接口,再把数据转发给前端来绕过跨域,都是极其方便的,且不需要经过接口端的任何允许” 这是你自己预料中的,想要的跨域,自然是允许的。

但是浏览器防的是你不想要的跨域“攻击”。
zsdroid
2019-07-25 19:14:19 +08:00
你不知道的才叫攻击,你知道的叫正常访问

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

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

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

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

© 2021 V2EX