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

新手上路,请多包涵

我正在部署一个 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"
    ]
  }
}

原文由 Leo Policastro 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.4k
2 个回答

这里的很多答案确实解决了这个问题,但是自从我提出这个问题以来,我发现的最简单的方法是将 npm package serve 添加到您的依赖项中。

yarn add servenpm i serve

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

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

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

原文由 Leo Policastro 发布,翻译遵循 CC BY-SA 4.0 许可协议

对于等待补丁的反应脚本的人:

对于通过 https 进行的本地测试,您可以手动编辑

node_modules/react-dev-utils/webpackHotDevClient.js

这是您在该文件的第 62 行需要的代码:

 protocol: window.location.protocol === 'https:' ? 'wss' : 'ws',

对于部署,请按照以下步骤操作:

 npm install -g serve // This can be done locally too

npm run build

然后在您的 package.json 中添加部署脚本以使用服务:

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

接着

npm deploy or yarn deploy

希望这个答案可以帮助您摆脱错误。

有关更多信息,请参阅 此处 `

此错误已在发布的最新版本中得到修复。 点击此处查看源文件

原文由 Pratap Sharma 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题