同源(同域)指的是三个相同:协议,域名,端口ajax
第一:若是是协议和端口形成的跨域问题“前台”是无能为力的,(只能经过后台实现)
第二:在跨域问题上,域仅仅是经过“URL的首部”来识别而不会根据域名对应的IP地址是否相同来判断。
“URL的首部”能够理解为“协议, 域名 和 端口 必须匹配”。跨域
为了保证用户信息的安全,防止恶意网站窃取数据
Cookie 每每用来保存用户的登陆状态,若是用户没有退出登陆,其余网站就能够冒充用户,随心所欲。由于浏览器同时还规定,提交表单不受同源政策的限制。
因此同源策略很是重要,否则cookie能够共享,互联网没有安全可言。浏览器
非同源:安全
Cookie(window.domain)服务器
LocalStorage(window.postMessage)和IndexDB没法读取cookie
DOM没法获取(iframe和window.open打开的窗口)(window.domain)(window.postMessage)dom
AJAX请求不能发送post
规避限制一:Cookie
采用document.domain网站
规避限制二:iframe
采用document.domainspa
规避限制三LocalStorage
采用window.postMessage方法
规避限制四:AJAX
同源政策规定,AJAX请求只能发给同源的网址,不然就报错。
除了架设服务器代理(浏览器请求同源服务器,再由后者请求外部服务),有三种方法规避ajax限制。
JSONP
WebSocket
CORS