1.跨域:
当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域
同协议,同端口,同域名才属于同一域。
ajax出于安全考虑禁止跨域,但是src可以跨域。
2.非同源限制
【1】无法读取非同源网页的 Cookie、LocalStorage 和 IndexedDB
【2】无法接触非同源网页的 DOM
【3】无法向非同源地址发送 AJAX 请求
3.跨距解决方法:
【1】设置document.domain解决无法读取非同源网页的 Cookie问题
此方案仅限主域相同,子域不同的跨域应用场景。
【2】跨文档通信 API:window.postMessage(data,url)
它可用于解决以下方面的问题:
- 页面和其打开的新窗口的数据传递
- 多窗口之间消息传递
- 页面与嵌套的iframe消息传递
- 上面三个场景的跨域数据传递
【3】JSONP
【4】CORS
CORS 是跨域资源分享(Cross-Origin Resource Sharing)的缩写。它是 W3C 标准,属于跨源 AJAX 请求的根本解决方法。
1、普通跨域请求:只需服务器端设置Access-Control-Allow-Origin
2、带cookie跨域请求:前后端都需要进行设置
【前端设置】根据xhr.withCredentials字段判断是否带有cookie
参考资料https://blog.csdn.net/qq_38128179/article/details/84956552