【问题标题】:Syntax error on new WebSocket in edge, internet explorer边缘,Internet Explorer 中新 WebSocket 的语法错误
【发布时间】:2016-04-16 17:49:00
【问题描述】:

所以我觉得我快疯了。

我使用 javaScript 在端口 443 上建立 WebSocket 连接。

问题在于,WebSocket 声明仅在边缘浏览器和 Internet Explorer 浏览器上抛出 SyntaxError,在 Chrome 和 Firefox 等其他浏览器上它可以完美运行。

我使用的代码:

var Connection;
Connection = new WebSocket("ws:/127.0.0.1:443");

有人知道我做错了什么吗?

【问题讨论】:

    标签: javascript html websocket


    【解决方案1】:

    改成:

    var connection = new WebSocket("ws://127.0.0.1:443");
    

    【讨论】:

    • 仍然无法正常工作......,它在这条线上说同样的错误。
    • 即使这个("ws://127.0.0.1:443") ?
    • 哇,现在它正在工作,如果我使用 "connection" 而不是 "Connection" ,它也可以在 2 行中工作......,我不明白为什么?就像“连接”是边缘/Internet Explorer 中的关键字。
    • 通常任何以大写开头的都是构造函数,因此 IE 将 Connection 视为构造函数
    • 是否因为您将ws:/ 更改为ws:// 而解决了?
    【解决方案2】:

    此问题来自webpackHotDevClient.js 文件(第 60 行)

    ./node_modules/react-dev-utils/webpackHotDevClient.js:60

    slashes: true,添加到格式对象以解决它,您的更新应该如下sn-p:

    // Connect to WebpackDevServer via a socket.
    var connection = new WebSocket(
      url.format({
        protocol: window.location.protocol === 'https:' ? 'wss' : 'ws',
        hostname: window.location.hostname,
        port: window.location.port,
        // Hardcoded in WebpackDevServer
        pathname: '/sockjs-node',
        slashes: true,
      })
    );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-29
      • 1970-01-01
      • 2010-09-14
      • 1970-01-01
      • 1970-01-01
      • 2018-08-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多