当前位置: 首页 > 面试题库 >

React应用错误:无法构造“ WebSocket”:可能无法通过HTTPS加载的页面启动不安全的WebSocket连接

闾丘才哲
2023-03-14
问题内容

我正在部署React应用程序,但是通过https访问页面时遇到一个奇怪的错误。

当我通过https访问页面时,收到以下错误:

SecurityError:无法构造“ WebSocket”:可能不会从通过HTTPS加载的页面启动不安全的WebSocket连接。

但是,当我通过http转到该页面时,效果很好。

问题是,据我所知,我没有使用websockets。我在代码中进行了搜索,以查看是否有对HTTP的请求,应该是https或ws:而不是wss:的请求,但是我什么都没看到。

有人遇到过吗?

我包括package.json文件的副本。让我知道是否需要我上载任何其他代码来帮助调试。

提前致谢。

{
  "name": "client",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@testing-library/jest-dom": "^4.2.4",
    "@testing-library/react": "^9.3.2",
    "@testing-library/user-event": "^7.1.2",
    "baffle": "^0.3.6",
    "cross-env": "^6.0.3",
    "react": "^16.12.0",
    "react-dom": "^16.12.0",
    "react-player": "^1.14.2",
    "react-router-dom": "^5.1.2",
    "react-scripts": "3.3.0",
    "react-typist": "^2.0.5",
    "webpack-hot-dev-clients": "^2.0.2"
  },
  "scripts": {
    "start": "cross-env react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": "react-app"
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  }
}

问题答案:

这里有很多答案确实可以解决问题,但是自从我问这个问题以来,我找到的最简单的方法是将npm包服务添加到您的依赖项中。

yarn add serve 要么 npm i serve

然后将您的启动脚本替换为以下内容:

"scripts": {
    "start": "serve -s build",
}

实际上,这直接来自create-react-app 文档



 类似资料:
  • 问题内容: 我迷上了Firefox。我无法使Websocket正常工作。我使用TornadoWebsocket,并通过以下代码对其进行了初始化: 然后像这样在Javascript端初始化它: 这段代码在Chrome上运行良好,同时我自己创建了证书并在HTTPS下运行页面。但是Firefox一直在说: 我用谷歌搜索,发现了太多想法,但没有一个对我有用:( 任何帮助将不胜感激。 问题答案: 我通过Pr

  • 我有一个页面,上面有一些D3 javascript。这个页面位于HTTPS网站内,但证书是自签名的。 当我加载页面时,我的D3可视化没有显示,我得到了错误: 混合内容:页面位于'https://integration.jsite.com/data/vis'通过HTTPS加载,但请求了不安全的XMLHttpRequestendpoint'http://integration.jsite.com/da

  • 问题内容: 我有一个使用socket.IO的node.js应用程序。它可以在http上正常工作,但是当尝试通过https连接到套接字时,没有任何反应。 这是代码的一部分: 和功能: 客户端连接如下: 正如我说的,在http上一切正常,但是在https上连接会给我“连接被中断”。我究竟做错了什么? 问题答案: 您不能像服务器那样初始化服务器。您必须启动一个单独的https服务器,然后将socket.

  • 问题内容: 摘要 我在IE 7,8,9的HTTPS上使用@ font-face遇到了问题-它根本没有加载。不管包含的HTML页面是否托管在HTTPS上都没有关系, 当我尝试通过HTTP加载EOT字体时,它可以工作,而HTTPS则不能 。有人看到过这种行为吗? 托管字体的服务器正在发送正确的content-type =“ application / vnd.ms-fontobject” 我尝试了多种

  • 我尝试用JSF 2.3.3(Glassfish实现)测试新的WebSocket功能。我使用 Tomcat 9.0.1 作为 Web 服务器并遵循本指南(https://javaserverfaces.github.io/whats-new-in-jsf23.html) 我创建了一个托管bean: 更新的index.xhtml: 并更新了web.xml: 不幸的是,Tomcat加载应用程序失败,出现

  • 错误:无法启动连接:错误:WebSocket无法连接。在服务器上找不到连接,endpoint可能不是信号器endpoint,服务器上不存在连接ID,或者存在阻止WebSocket的代理。如果有多台服务器,请检查是否启用了粘性会话。 WebSocketTransport.js:49WebSocket连接到“ws://xxxxxx/生产/网络服务/集线器/spreadhub”失败: Angular.t