• 同源和跨域的那些事-简单图文总结


    image.png

    01、为什么要跨域?

    跨域的根本原因是浏览器的“同源策略”,得先了解什么是同源?—— 就是【协议+域名+端口号】相同,即为同源,只能向同源的服务发起AJAX请求。

    源1 源2 是否同源
    a.com b.com 🚫不同源,域名不同
    http://a.com https://a.com 🚫不同源,协议不同
    a.com:80 a.com:443 🚫不同源,端口不同
    gg.com a.gg.com 🚫不同源,子域名不同
    a.com/ss a.com/s2 同源

    可通过location.originwindow.origin获取当前文档的源

    ❓为什么要同源呢?

    这是浏览器故意设计的,是浏览器的基本安全策略,否则会很容易受到XSS、CSRF攻击。只能向同源的服务发起AJAX请求,不可跨域请求,会被浏览器拦截。

    ❓有哪些限制规则呢?

    • ✅ 访问其他源的图片、CSS、JS是可以的,允许