加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

前端开发 | 那些年曾谈起的跨域

发布时间:2019-06-21 20:29:08 所属栏目:建站 来源:Aaron
导读:对于前端开发来说跨域应该是最不陌生的问题了,无论是开发过程中还是在面试过程中都是一个经常遇到的一个问题,在开发过程中遇到这个问题的话一般都是找后端同学去解决,以至于很多人都忽略了对跨域的认识。为什么会导致跨域?遇到跨域又怎么去解决呢?本

服务端:

  1. var io = require('socket.io')(1234);  
  2. io.sockets.on('connection', (client) => {  
  3.     client.on('message', function (msg) { //监听到信息处理  
  4.         client.send('服务器收到了信息:' + msg);  
  5.     });  
  6.     client.on("disconnect", function () { //断开处理  
  7.         console.log("client has disconnected");  
  8.     });  
  9. });  
  10. console.log("listen 1234...");  

客户端:

  1. $(function () {  
  2.     var ioiosocket = io.connect('http://localhost:1234/');  
  3.     var $ul = $("ul");  
  4.     var $input = $("input");  
  5.     iosocket.on('connect', function () {  //接通处理  
  6.         $ul.append($('<li>连上啦</li>'));  
  7.         iosocket.on('message', function (message) {  //收到信息处理  
  8.             $ul.append($('<li></li>').text(message));  
  9.         });  
  10.         iosocket.on('disconnect', function () { //断开处理  
  11.             $ul.append('<li>Disconnected</li>');  
  12.         });  
  13.     });  
  14.     $input.keypress(function (event) {  
  15.         if (event.which == 13) { //回车  
  16.             event.preventDefault();  
  17.             console.log("send : " + $input.val());  
  18.             iosocket.send($input.val());  
  19.             $input.val('');  
  20.         }  
  21.     });  
  22. });  

Websocket既然能支持跨域方法,那就是说,一个开放给公网的Websocket服务任何人都能访问,这样的话会使数据变得很不安全,所以可以通过对连接域名进行认证即可。

服务器反代

学习路程首先了解了一下什么是反代,在计算机网络中,反向代理是代理服务器的一种。服务器根据客户端的请求,从其关联的一组或多组后端服务器(如Web服务器)上获取资源,然后再将这些资源返回给客户端,客户端只会得知反向代理的IP地址,而不知道在代理服务器后面的服务器簇的存在。 -- 节选自百度百科

反向代理服务器:就nginx把http请求转发到另一个或者一些服务器上。从而轻松实现跨域访问。比如服务器中分别部署了N个服务器,当客户端发起请求时不用直接请求服务器中N个节点上的服务,只需要访问我们的代理服务器就行了,代理服务器根据请求内容分发到不同服务器节点。这仅是一种使用场景,当然还可以做负载均衡等。

反向代理理解起来不是特别的难,平时生活中最常见的例子,当我们拨打人工客服的时候,并不是直接拨打客服的某一个电话号码,而是拨打总机号码,当我们拨打然后由总机进行处理,然后再分发给不同的客服人员。r然而当服务人员需要让你挂断电话等待回拨的时候,也不是直接拨打到你的电话,同样是也通过总机之后再转发到你的电话。其实这个总机也就相当于反代服务器。虽然这个例子不太贴切但是多多少少就是这个意思。

由于不太懂Nginx不知道该如何处理这个部分,只是对反向代理做了一个简单的了解,等以后学习了Nginx会补上相关代码。

Nodejs代理跨域

使用Nodejs进行跨域在我看来,就是使用Node服务做了一个中间代理转发,其原理和反向代理差不多,当访问某一个URL时需要通过服务器分发到另一个服务器URL地址中。这里就不过多的赘述了,直接看代码吧。

示例代码入下:

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读