跨域
Cookie
cookie是服务器写入浏览器的一小段信息,要求域名相同网页才可以共享。如果两个网页一级域名相同,只是次级域名不同,浏览器允许通过设置document.domain
共享 Cookie
window.postMessage()
Reference:window.postMessage
window.postMessage()
允许跨窗口通信,不论这两个窗口是否同源。- 通过
postMessage()
,读写其他窗口的 LocalStorage 也成为了可能
otherWindow.postMessage(message, targetOrigin, [transfer]);
AJAX
同源政策规定,AJAX 请求只能发给同源的网址,否则就报错。
除了架设服务器代理(浏览器请求同源服务器,再由后者请求外部服务),有三种方法规避这个限制:
- JSONP
- WebSocket
- CORS
JSONP
通过script标签的src属性不受同源策略限制进行跨域访问数据,服务器会将数据放在回调函数的参数位置进行返回。
JSONP只能发送GET请求。
WebSoket
WebSocket 是一种通信协议,使用ws://
(非加密)和wss://
(加密)作为协议前缀。该协议不实行同源政策,只要服务器支持,就可以通过它进行跨源通信。
CORS
CORS 是跨源资源分享(Cross-Origin Resource Sharing)的缩写。它是 W3C 标准,属于跨源 AJAX 请求的根本解决方法。
CORS主要在于后端的配置,设置允许的请求方式及请求头信息。
(例如:Access-Control-Allow-Origin: *
)
CORS允许任何类型的请求
Reference:王道cors-非简单请求
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。