通信(待完善理解)
一、同源策略
同源:URL由协议、域名、端口和路径组成,如果两个URL的协议、域名和端口相同,则表示他们同源。相反,只要协议,域名,端口有任何一个的不同,就被当作是跨域。
同源策略是浏览器的一个安全功能,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源。这是一个用于隔离潜在恶意文件关键的安全机制。
同源策略限制:
Cookie、LocalStorage、IndexDB无法读取;
DOM无法获得;
AJAX请求不能发送(Ajax只适合同源的通信).
不受同源策略限制的:
1、页面中的链接,重定向以及表单提交是不会受到同源策略限制的。
2、跨域资源的引入是可以的。但是js不能读写加载的内容。如嵌入到页面中的 script,img,link,iframe标签等。
二、前后端如何通信
Ajax、WebSocket、CORS
Ajax:不支持跨域。
WebSocket:不受同源策略的限制,支持跨域。
CORS:不受同源策略的限制,支持跨域。一种新的通信协议标准。可以理解成是:同时支持同源和跨域的Ajax。
三、如何创建Ajax
https://baijiahao.baidu.com/s?id=1615806554906953063&wfr=spider&for=pc
四、跨域通信的方式
1、JSONP
2、WebSocket
3、CORS
4、Hash
5、postMessage