You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue CLI3启用CORS配置求助:集成Blockstack登录遇跨域问题

嘿,完全懂你被这个CORS问题卡两天的崩溃感!这就给你几个基于Vue CLI配置的解决方案,亲测能解决Blockstack登录时的manifest跨域问题:

解决方案1:给开发服务器添加CORS头+映射静态资源到根路径

Blockstack的登录服务是从外部域名请求你的manifest.json,浏览器的同源策略会直接拦截。我们可以通过vue.config.js给开发服务器配置允许跨域的响应头,同时把static目录的资源映射到根路径,让http://localhost:8080/manifest.json能正常访问。

在项目根目录的vue.config.js里添加以下代码(如果没有这个文件就新建一个):

module.exports = {
  devServer: {
    // 允许所有域名跨域访问开发服务器(开发环境用*没问题,生产环境要限制具体域名)
    headers: {
      'Access-Control-Allow-Origin': '*',
      'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, PATCH, OPTIONS',
      'Access-Control-Allow-Headers': 'X-Requested-With, content-type, Authorization'
    },
    // 将static目录映射到根路径,确保manifest.json能通过根URL访问
    static: {
      directory: './static',
      publicPath: '/'
    }
  }
}

配置完后必须重启开发服务器,然后访问http://localhost:8080/manifest.json确认能正常返回文件,再测试Blockstack登录功能。

解决方案2:将开发服务器端口改为80(匹配Blockstack的默认请求路径)

如果Blockstack要求必须请求http://localhost/manifest.json(不带8080端口),那我们可以把Vue开发服务器的端口改成80:

修改vue.config.js:

module.exports = {
  devServer: {
    port: 80,
    headers: {
      'Access-Control-Allow-Origin': '*'
    },
    static: {
      directory: './static',
      publicPath: '/'
    }
  }
}

注意:80端口是系统默认端口,启动时需要管理员权限:

  • Windows:用管理员身份打开命令提示符再运行npm run serve
  • Mac/Linux:运行sudo npm run serve

这样你的应用就跑在http://localhost,manifest.json也在根路径,Blockstack能直接访问,完全避开跨域问题。

额外检查项

别忘了确认你的manifest.json内容符合Blockstack的要求,至少要包含以下字段(示例):

{
  "name": "我的Vue Blockstack应用",
  "start_url": "http://localhost:8080", // 或者http://localhost,根据你的端口配置
  "description": "集成Blockstack登录的Vue应用",
  "icons": [
    {
      "src": "/icon.png",
      "sizes": "192x192",
      "type": "image/png"
    }
  ],
  "display": "standalone"
}

内容的提问来源于stack exchange,提问作者Code Tree

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 03:48:19