通信类

作者: 猴子Hope | 来源:发表于2018-01-03 22:43 被阅读0次

一、同源策略及限制

源:域名    端口号    协议

同源策略限制从一个源加载的文档或脚本如何与来自另一个源的资源进行交互。这是一个用于隔离潜在恶意文件的关键的安全机制。

Cookie、LocalStorage和IndexDB无法读取

DOM无法获得

Ajax请求不能发送

二、前端通信

Ajax    同源通信

WebSocket    不限制同源

CORS    不限制同源

三、跨域通信

JSONP    利用script标签异步加载

    1. 给服务端传递一个回调名称

    2. 在window以回调名称注册一个全局函数

    3. 动态创建script标签

    4. 监听脚本加载事件,响应onload,判断onload响应是否成功, 删除函数或变量

    5. 在HTML文档中增加此script标签

https://github.com/webmodules/jsonp

Hash    URL#,快通信,页面不刷新

    页面A通过iframe或frame嵌入跨域页面B

    A中伪代码:

var B = document.getElementsByTarName('iframe');

B.src = B.src + '#' + 'data';

    B中伪代码:

window.onhashchange = function () {

    var data = window.location.hash;

};

postMessage    HTML5新增

    窗口A(http://A.com)向跨域的窗口B(http://B.com)发送消息

window.postMessage('data', 'http://B.com);

    在窗口B中监听

window.addEventListener('message', function (e) {

    console.log(e.origin);    //http://A.com

    console.log(e.source);    //窗口A的window

    console.log(e.data);

}, false);

WebSocket    新标准

var ws = new WebSocket('wss://echo.websocket.org');

ws.onopen = function (e) {

    console.log('Connection open ...');

    ws.send('Hello WebSockets!');

};

ws.onmessage = function (e) {

    console.log('Received Message: ' + e.data);

    ws.close();

}

ws.onclose = function (e) {

    console.log('Connection closed.');

};

CORS    新标准,支持跨域通信的Ajax

    浏览器会拦截Ajax请求,如果这个Ajax请求是跨域的,会在HTTP请求头中加一个origin

fetch(url [, options]);

fetch('/some/url', {

    method: 'get',

}).then(function (response) {

    //

}).catch(function (error) {

    //

});

相关文章

  • 通信类

    什么是同源策略及限制? —> 前后端如何通信? —> 如何创建Ajax? —> 跨域通信的几种方式? 一、什么是同...

  • 通信类

    一、同源策略及限制 源:域名 端口号 协议 同源策略限制从一个源加载的文档或脚本如何与来自另一个源的资源进行交...

  • 通信类

    什么是同源策略及限制 同源策略限制从一个源加载的文档或脚本如何与来自另一个源的资源进行交互,这是一个用于隔离潜在的...

  • 通信类

    同源策略及限制 概念 同源策略限制从一个源加载的文档或脚本与来自另一个源的资源进行交互。这是一个用于隔离潜在恶意文...

  • Kotlin网络编程(3)TCP Socket 低层次网络编程

    TCP Socket 通信概念TCP Socket 通信过程Socket 类ServerSocket 类案例:文件...

  • vue 组件通信方式 ,父子、隔代、兄弟 三类通信,六种方法

    Vue 组件间通信只要指以下 3 类通信:父子组件通信、隔代组件通信、兄弟组件通信,下面分别介绍每种通信方式且会说...

  • Spark学习笔记三_下 Spark 核心原理

    架构简要介绍在前几片博客提过了 Spark的消息通信原理 通信模块类图 首先看一下Spark的消息通信的类图 最核...

  • Qt串口通信

    1. Qt串口通信类QSerialPort 在Qt5的的更新中,新增了串口通信的相关接口类QSerialPort,...

  • 物联网尖端技术大揭秘:NB-IoT与LoRa技术对比

    物联网的无线通信技术很多,主要分为两类:一类是Zigbee、WiFi、蓝牙、等短距离通信技术;另一类是LPWAN(...

  • 进程的通信方式

    进程通信 1.进程通信的类型 高级通信机制主要分为三大类:共享存储器系统、消息传递系统、管道通信系统。 其中,消息...

网友评论

      本文标题:通信类

      本文链接:https://www.haomeiwen.com/subject/vfuknxtx.html