定义
同源(同域)指的是三个相同:协议,域名,端口
第一:如果是协议和端口造成的跨域问题“前台”是无能为力的,(只能通过后台实现)
第二:在跨域问题上,域仅仅是通过“URL的首部”来识别而不会根据域名对应的IP地址是否相同来判断。
“URL的首部”可以理解为“协议, 域名 和 端口 必须匹配”。
目的
为了保证用户信息的安全,防止恶意网站窃取数据
Cookie 往往用来保存用户的登录状态,如果用户没有退出登录,其他网站就可以冒充用户,为所欲为。因为浏览器同时还规定,提交表单不受同源政策的限制。
所以同源策略非常重要,不然cookie可以共享,互联网没有安全可言。
限制范围
非同源:
Cookie(window.domain)
LocalStorage(window.postMessage)和IndexDB无法读取
DOM无法获取(iframe和window.open打开的窗口)(window.domain)(window.postMessage)
AJAX请求不能发送
规避限制一:Cookie
采用document.domain
规避限制二:iframe
采用document.domain
规避限制三LocalStorage
采用window.postMessage方法
规避限制四:AJAX
同源政策规定,AJAX请求只能发给同源的网址,否则就报错。
除了架设服务器代理(浏览器请求同源服务器,再由后者请求外部服务),有三种方法规避ajax限制。
JSONP
WebSocket
CORS
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。