浏览器存在跨域问题的根源在于浏览器的同源策略
同源策略对于 ajax 这块,应该本意是不希望浏览器端 js 在未经允许的情况下随意调用非同源的接口发送和获取数据
某些解决方案例如 jsonp、cors 其实都是需要服务端配合才能实现,相当于是需要服务端的许可,所以很合理,并不违反同源策略的初衷
但是对于代理这种方式,前端现在做项目离不开各种 node 环境,而在 node 环境里,不管是用各种 proxy 插件还是自己本地启个 server 来请求别人接口,再把数据转发给前端来绕过跨域,都是极其方便的,且不需要经过接口端的任何允许
那么同源策略关于 ajax 这块的限制,是不是形同虚设?还有什么意义吗?
可能我了解的不够,望大佬解惑
1
meepo3927 2019-07-25 18:47:46 +08:00
个人认为,不是形同虚设。
意义在于,它让浏览器避免成为跨域攻击的工具,尽量确保环境安全。 proxy 跨域攻击是有人故意为之, 浏览器如果能跨域攻击,那么广大的网民可能也成为"攻击者"。 |
2
momocraft 2019-07-25 19:04:41 +08:00
你自己架服务器当然随便允许,不管用什么语言
这不叫形同虚设 |
3
maichael 2019-07-25 19:11:45 +08:00
“但是对于代理这种方式,前端现在做项目离不开各种 node 环境,而在 node 环境里,不管是用各种 proxy 插件还是自己本地启个 server 来请求别人接口,再把数据转发给前端来绕过跨域,都是极其方便的,且不需要经过接口端的任何允许” 这是你自己预料中的,想要的跨域,自然是允许的。
但是浏览器防的是你不想要的跨域“攻击”。 |
4
zsdroid 2019-07-25 19:14:19 +08:00
你不知道的才叫攻击,你知道的叫正常访问
|