js通信——同源跨域

JavaScript09

js通信——同源跨域,第1张

同源:协议、域名、端口号都相同。

同源策略限制:从一个源加载的文档或脚本与另一个源的资源进行交互。

限制:1.cookie、localstorage、indexDB不能获取;2. ajax请求不能发送;3.DOM无法获得。

ajax 同源、fetch、webSocket 不限制同源、CORS 支持同源、不同源

postMessage是html5引入的API,postMessage()方法允许来自不同源的脚本采用异步方式进行有效的通信,可以实现跨文本文档,多窗口,跨域消息传递.多用于窗口间数据通信,这也使它成为跨域通信的一种有效的解决方案.

要发送到其他窗口的数据,它将会被 !结构化克隆算法 序列化.这意味着你可以不受什么限制的将数据对象安全的传送给目标窗口而无需自己序列化.

通过窗口的origin属性来指定哪些窗口能接收到消息事件,指定后只有对应origin下的窗口才可以接收到消息,设置为通配符"*"表示可以发送到任何窗口,但通常处于安全性考虑不建议这么做.如果想要发送到与当前窗口同源的窗口,可设置为"/"

是一串和message同时传递的 Transferable 对象,这些对象的所有权将被转移给消息的接收方,而发送一方将不再保有所有权.

下面是打印出的结果 data属性为传输过来的数据

若用到的地方很多 建议加上 targetOrigin 属性 并且给数据加好type确保数据正确的被接收

欢迎对这个有研究、有兴趣或者发现文章有错误的地方的伙伴们和我交流,共同进步~~~

不行。

主要通讯方式就是485通讯,其次还有422,232,以及CAN总线通讯,假设其中一个PLC为上位机,另外的都为下位机,设置不同的站号,进行交互通讯。一般情况下,如果不需要读取过多参数,还可以通过触摸屏,所有的PLC都和触摸屏通讯,然后通过触摸屏转换控制。