vue cli3启用CORS

时间:2019-02-19 11:48:32

标签: vue.js vue-cli-3

我已经有将近2天的问题了,任何帮助都会挽救生命。

我的vue应用程序在8080开发人员模式下运行,并且我尝试集成块堆栈登录,并且该应用程序尝试读取http://localhost/manifest.json,因此我将其放置在静态目录中,但是这会引发cors错误,请执行我们有针对vue cli配置(例如vue.config.js)的解决方案吗?

3 个答案:

答案 0 :(得分:1)

在这种情况下,“正确答案”实际上无济于事。

Blockstack必须能够访问manifest.json文件(在本例中为localhost:8080 / manifest.json)。当服务器不支持CORS时,Blockstack会抛出错误。

OP询问的是如何使“ vue-cli-service服务”允许COR请求发生。为此,我们需要修改Webpack的dev服务器以允许CORS请求。

添加vue.config.js(如果尚不存在)

module.exports = {
  configureWebpack: {
    devServer: {
      headers: { "Access-Control-Allow-Origin": "*" }
    }
  }
};

答案 1 :(得分:0)

CORS错误意味着您正在尝试从非请求源的域中检索某些内容。如果您的应用程序在端口8080上运行,则希望它尝试从localhost:8080/manifest.json而不是localhost/manifest.json检索manifest.json文件。听起来好像您没有端口就已经以某种方式对主机名进行了硬编码。考虑使用相对于主根的网址(例如/manifest.json)。

在任何情况下,只能通过匹配源域和目标域或通过让服务器返回正确的Access-Control-Allow-Origin标头来解决CORS错误。作为前端,Vue对此无能为力。

答案 2 :(得分:0)

我遇到了和你一样的问题。我应用了 vue-js 的文档所说的将一些代码放入 vue.config.js 中

module.exports = {
  devServer: {
    proxy: 'http://localhost:4000'
  }
}

但这无济于事。请参阅此文档 https://cli.vuejs.org/config/#devserver 。 我在 laravel 中有单独的后端,我在 vue-js 中允许 cors 浪费了太多时间之后做了什么,我在我的后端 index.php 文件中应用了 cors,这就像一个魅力。 问题是你真的不知道它是从哪里来的,但同时看看前端和后端,然后试着在两边找到解决方案。