同源策略
在浏览器的安全策略中“同源策略”非常如雷贯耳,说的是协议、域名、端口相同则视为同源,域名也可换成IP地址,不同源的页面脚本不能获取对方的数据。
要是想使用XMLHttpRequest
或者常规的AJAX请求获取另一个站点的数据,浏览器会告诉你“XXXX is not allowed by Access-Control-Allow-Orign”
.
因为同源策略的存在,防止了跨域访问的安全问题,但同时也损失了方便获取资源的便利。
跨域的src属性
世事又非绝对,浏览器还是允许几个元素跨域访问外部资源的,如:<script>,<img>,<iframe>
,也就是说,在html
元素中拥有src
属性的元素是可以跨域访问资源。
通过src
属性,img
可以引用其它站点或图床的图片,大大降低本站的图片持久。
通过src
属性,script
可以引用CDN
的JS
文件,加速了浏览器的脚本文件的下载,跨域的数据获取更加高效和方便。
通过src
属性,iframe
可以嵌入其它站点的页面,可以让页面的框架和可变内容分离,内容引用较为灵活,方便引用其它站点,虽然现在越来越不建议使用它。
正因为跨域访问的存在,web世界才能更加的精彩。
而JSONP
正式利用了script
标签的跨域能力。