server 是webpack创建的,运行在 localhost:8080,部署到服务器后运行就报错
网上的解决方案
【方案 1】
这个问题:如果是在开发环境,应该是开发的时候网络环境变更导致,比如你切换无线网络,导致开发服务器的 IP 地址换了,这样开发服务器会不知道如何确定访问源。开发环境中关闭 npm dev server,然后重新 npm run serve 重新构建服务环境就可以了。
如果是生产环境,很大可能是应该是域名和 ip 映射出问题,重启 node,检查重新配置域名和 ip 映射就可以了。
【方案 2】
如果你的浏览器,与 NPM 服务器,不是同一个机器(不是 localhost),那么会导致这个报错。
我搜索了好久,才发现这个是可以在 webpackjs 里配置的(即 vue.config.js):
https://webpack.js.org/config... module.exports = { devServer: { sockHost: 'demo.my-domain.com', disableHostCheck: true, } }
【方案 3】
首先 sockjs-node 是一个 JavaScript 库,提供跨浏览器 JavaScript 的 API,创建了一个低延迟,全双工的浏览器和 web 服务器之间通信通道。
如果你的项目没有用到 sockjs,vuecli3 运行 npm run serve 之后 network 里面一直调用一个接口:
http://localhost:8080/sockjs-node/info?t=1556418283950
方案:从根源上关闭此调用
1、node_modules/sockjs-client/dist/sockjs.js
2、代码的 1605 行注释
// self.xhr.send(payload);
ps:可在代码开发完成后关闭,会同步关闭热加载
个人是参考方案二,