关于跨域的产生原因,以及解决方案
浏览器的安全基石“同源政策”,基于此产生跨域问题。
同源指的是三个相同:协议相同(例如http)、端口相同、域名相同。
例如 http://www.baidu.com/ 协议是http,域名是 www.baidu.com 端口是80
它的同源情况是:http://www.baidu.com/a.html 同源
http://www.tengxun.com/a.html 不同源(域名不同)
http://www.baidu.com:81/a.html 不同源 (端口不同)
同源政策的目到是为了保证用户的安全
例如:你在A银行网站登录,然后又去访问B网站,如果没有同源政策会发生什么呢?
B网站可以获取到你在A网站的cooking(登陆状态),也就可以获取你在A网站上的所有信息,所以为了解决这个问题出现了同源政策。
在开发中,如果非同源有三种行为会受到限制。
1.cookie、localstorage、indexDb无法读取
2.DOM无法获取
3.ajax请求不能发送
关于ajax请求最常用的解决访问:架设服务器代理(浏览器请求同源服务器,在后服务器去请求后台返回数据)
还有一下三种解决方案:
JSONP
WebSocket
CORS