首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Coding
V2EX  ›  前端开发

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

  •  
  •   realfex · 139 天前 · 446 次点击
    这是一个创建于 139 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

    4 回复  |  直到 2019-07-25 19:14:19 +08:00
        1
    meepo3927   139 天前
    个人认为,不是形同虚设。

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

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

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

    但是浏览器防的是你不想要的跨域“攻击”。
        4
    zsdroid   139 天前
    你不知道的才叫攻击,你知道的叫正常访问
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2593 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 30ms · UTC 13:38 · PVG 21:38 · LAX 05:38 · JFK 08:38
    ♥ Do have faith in what you're doing.