这个错误是由于浏览器的跨域策略导致的。浏览器默认不允许跨域请求,如果后台接口没有设置正确的响应头,浏览器就会拒绝访问。

要解决这个问题,你可以在后台接口的响应头中设置 Access-Control-Allow-Origin 字段,允许特定的域名或所有域名访问该接口。例如,设置为 Access-Control-Allow-Origin: * 表示允许所有域名访问。

如果你无法修改后台接口的响应头,也可以考虑使用代理来解决跨域问题。你可以在前端的开发环境中配置一个代理服务器,将请求转发到后台接口,并在代理服务器中设置正确的响应头。

如果你使用的是 Vue CLI,可以在 vue.config.js 文件中配置代理:

module.exports = {
  devServer: {
    proxy: {
      '/api': {
        target: 'http://backend-api.com',
        changeOrigin: true,
        pathRewrite: {
          '^/api': ''
        }
      }
    }
  }
}

上述配置将会将所有以 /api 开头的请求转发到 http://backend-api.com,并且自动处理跨域问题。

注意,这种方式只适用于开发环境,如果你部署到生产环境,你需要确保后台接口设置了正确的响应头

vue3 调用后台接口报错 has been blocked by CORS policy No Access-Control-Allow-Origin header is present on the requested resource

原文地址: https://www.cveoy.top/t/topic/iiaQ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录