什么是跨域?如何解决跨域问题
一、什么是跨域?
指的是浏览器不能执行其他网站的脚本,它是由浏览器的同源策略造成的,是浏览器对 javascript 施加的安全限制。
同源策略:是指协议(protocol)、域名(host)、端口号(port),都必须相同,其中一个不同都会产生跨域。
http://www.test.com:8000/ 协议(http)、主域名(test)、子域名(www)、端口号(8000)
二、非同源限制
无法读取非同源网页的cookie、localStorage、IndexedDB
无法接触非同源网页的DOM
无法向非同源地址发送 AJAX 请求
三、解决跨域的方法
1.JSONP
原理是:
有些标签 script、img、link、iframe ... 这些标签不存在跨域请求的限制,就是利用这个特点解决跨域问题。
JSONP 是服务器与客户端跨源通信的常用方法。
优点:简单适用,兼容性好(可以兼容低版本IE),
缺点:只支持 get 请求,不支持 post 请求,导致数据不安全
核心思想:网页通过添加一个