Vue无效的主机头

Posted

技术标签:

【中文标题】Vue无效的主机头【英文标题】:Vue invalid host header 【发布时间】:2019-05-23 05:23:57 【问题描述】:

不知道为什么 2 天前我的项目(通过 vue create 创建)停止工作 - 在 Chrome 中我得到了

无效的主机头

WDS 已断开

错误。在 cmd 中,一切都正确编译( npm run serve ) 我不知道 webpack,所以我不知道如何修复它。

我已经做了什么:

重新安装节点 删除并重新安装了所有 npm 包

【问题讨论】:

【参考方案1】:

这个问题是由最近修复的这个 webpack-dev-server issue 引起的。

为避免出现 Invalid Host/Origin 标头错误,请将其添加到 vue.config.js 文件中的 devServer 条目中:

disableHostCheck: 真

【讨论】:

【参考方案2】:

请注意,disableHostCheck: true不推荐,因为它会创建 security vulnerabilities。

对于在我的本地机器上运行的开发服务器,我可以通过在 vue-cli-service serve 中显式设置 --host 来解决此问题:

scripts: 
  serve: "vue-cli-service serve --host myapp.localhost"

--host 选项记录在 here。

在浏览器中的myapp.localhost:8080 下访问应用程序(假设您使用默认端口8080)。

【讨论】:

【参考方案3】:

在项目根目录下创建vue.config.js

然后,将下面的代码添加到vue.config.js

module.exports = 
  devServer: 
    disableHostCheck: true
  

最后,你必须再次运行命令:

npm run serve

【讨论】:

【参考方案4】:

在搜索相同的“Invalid Host Header”问题时发现了这个问题。这是我解决它的方法。

我正在远程服务器上的 Docker 中运行 Vue 开发服务器 npm run serve。无法通过http://example.com:8080 访问它并显示上述错误消息。

正确安全的方法是将域名添加到vue.config.js文件中:

"devServer": 
  "public": "example.com"

这是一个使用 Vue Cli 命令启动的全新 vue 项目:vue create myproject,并通过 vue add vuetify 添加了 Vuetify。之后我的vue.config.js的全部内容是:

module.exports = 
  "transpileDependencies": [
    "vuetify"
  ],
  "devServer": 
    "public": "example.com"
  

【讨论】:

【参考方案5】:

这是因为开发服务器不接受外部请求。为了解决这个问题,我们需要配置vue.config.js,如下所示。

如果你的vue项目中没有找到vue.config.js,请在根目录下创建文件并添加以下行。

module.exports = 
    // options...
    devServer: 
        disableHostCheck: true
    

Source

【讨论】:

以上是关于Vue无效的主机头的主要内容,如果未能解决你的问题,请参考以下文章

Vuejs 应用程序显示无效的主机标头错误循环

PhantomJS 主机文件更改或主机头

服务器上必须保留空主机头,如何放置恶意域名指向呢?

无效主机/ Referer请求标头的最合适的HTTP状态代码是什么?

nginx -实现同一主机IP地址多个加密主机头

有没有办法用 HTTPS 加密主机头?