美文网首页
98、解决vue-cli3项目运行时sockjs报错问题

98、解决vue-cli3项目运行时sockjs报错问题

作者: world_7735 | 来源:发表于2019-10-11 13:15 被阅读0次

    使用vue-cli3创建的项目,在谷歌浏览器运行没有问题,但在火狐浏览器、ie浏览器和edge浏览器上运行都会报错(就测试了这几个浏览器,其它的没测),具体报错内容如下:

    // 火狐浏览器 报错如下
    "载入页面时与 ws://localhost:8080/sockjs-node/631/u0rsdsy0/websocket 的连接中断"
     
    // ie浏览器 报以下错误
    SCRIPT5022: SecurityError
    sockjs.js (1683,3)
     
    // edge浏览器 报以下错误
    SCRIPT12017: SCRIPT12017: WebSocket Error: SECURITY_ERR, Cross zone connection not allowed
    

    解决方法:

    1. 找到/node_modules/sockjs-client/dist/sockjs.js
      2.找到代码的 1605行
    try {
        // self.xhr.send(payload); // 把这行注释掉
    } catch (e) {
        self.emit('finish', 0, '');
        self._cleanup(false);
    }
    

    3.刷新,搞定

    刚开始以为是兼容性问题,折腾了好久,发现不是,后来找到一篇大佬写的文章,才得以解决

    ////////////////////////////////////////////////////////start//////////////////////////////////////////////////////////////

    vue-cli3 一直运行 /sockjs-node/info?t= 解决方案

    首先 sockjs-node 是一个JavaScript库,提供跨浏览器JavaScript的API,创建了一个低延迟、全双工的浏览器和web服务器之间通信通道。

    *服务端:sockjs-node(https://github.com/sockjs/sockjs-node)
    客户端:sockjs-clien(https://github.com/sockjs/sockjs-client)* 
    

    如果你的项目没有用到 sockjs,vuecli3 运行 npm run serve 之后 network 里面一直调研一个接口:http://localhost:8080/sockjs-node/info?t=1462183700002**

    作为一个有节操的程序猿,实在不能忍受,特意自己研究了下源码,从根源上关闭这个调用

    1. 找到/node_modules/sockjs-client/dist/sockjs.js *

    2.找到代码的 1605行 *

     try {
      //  self.xhr.send(payload); 把这里注掉
      } catch (e) {
        self.emit('finish', 0, '');
        self._cleanup(false);
      }
    

    3.刷新,搞定。

    相关文章

      网友评论

          本文标题:98、解决vue-cli3项目运行时sockjs报错问题

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