首页 > 其他 > 详细

跨域的几种方式

时间:2019-03-09 14:11:37      阅读:147      评论:0      收藏:0      [点我收藏+]

跨域的几种方式

  • CROS
  • 图像Ping
  • JOSNP
  • Comet
  • SSE
  • Web Sockets
  • HTML5 postMessage

CROS(Cross-Origin Resource Sharing): 跨域资源共享

原理是自定义HTTP头部Origin,这个部分由浏览器控制,这个过程与cookie无关。
例如:Origin: http://www.abc.com

服务器判读Origin的值是否在自己白名单当中,如果是,返回Access-Control-Allow-Origin: "http://www.abc.com"

当访问服务器的资源为公共资源时,也就是服务器不限制请求来源时,返回Access-Control-Allow-Origin: "*"

图像Ping

原理是创建一个实例,设置src进行单向通信,只能发送GET请求

var img = new Image();
img.onload = img.onerror = function() {
    alert("Ok");
}
img.src = "http://www.abc.com"

JSONP

原理是通过动态创建script标签完成

function handler(res) {
    console.log("The content:", res);
}
var script = document.createElement("script");
script.src = "http://www.abc.com?callback="handler"";
document.body.insertBefore(script, document.body.firstChild);

Comet

是一种服务器向页面推送数据技术。

有两种实现方式:长轮询HTTP流

长轮询

浏览器向服务器发送连接请求,浏览器就一直保持连接打开状态,服务器有数据时便发送数据到浏览器,浏览器关闭连接。然后再次发送连接请求。

HTTP流

浏览器向服务器发送一次连接请求,服务器一直保持连接打开状态。浏览器即使接受数据了也不会断开连接。

SSE(Server-Sent Event): 服务器发送事件

API

var source = new EventSource(url);

跨域的几种方式

原文:https://www.cnblogs.com/miku561/p/10500537.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!