Vue配置代理失效。。

前端配置了代理,但是请求没走代理地址,还是走的localhost,导致我在其他电脑访问,请求不了我的接口。

img

img

控制台是看不出转发的,是在内部转发的。 改了代理要重新启动vue项目

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7769012
  • 你也可以参考下这篇文章:vue项目中无法实现内网穿透,因为localhost的限制
  • 除此之外, 这篇博客: Vue项目启动默认打开http://0.0.0.0:8080,浏览器显示无法访问,手动修改为 localhost:8080 可正常打开中的 🌍 解决方案一:(推荐使用) 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 在vue.config.js文件新增:

    const { defineConfig } = require('@vue/cli-service')
    module.exports = defineConfig({
      transpileDependencies: true,
      devServer: {
        open: true,
        host: 'localhost',
        port: 8080
      }
    })
    

    再次启动项目,浏览器自动打开http://localhost:8080

  • 以下回答由chatgpt基于相关博客总结生成:

    问题分析: 根据提供的代码和问题描述,可以看出是在前端项目中配置了代理,但是请求没有通过代理地址,而是直接发送到localhost,导致其他电脑无法访问接口。

    解决方案: 1. 在config/index.js文件中配置代理,修改proxyTable选项,将要代理的请求路径和代理地址进行匹配,例如:

    javascript proxyTable: { '/api': { target: 'http://your-proxy-address', changeOrigin: true, pathRewrite: { '^/api': '' } } }

    这样当请求路径以/api开头时,会被代理到http://your-proxy-address地址。

    1. 确保在发送请求时,使用的是相对路径,以/api开头。例如,在getQualitySafetyItems函数中,将请求路径修改为'/api/your-api-path'

    ```javascript // 修改前 getQualitySafetyItems(this.searchForm)

    // 修改后 getQualitySafetyItems('/api/your-api-path', this.searchForm) ```

    这样请求的路径就会是http://your-proxy-address/your-api-path,而不是直接发送到localhost

    1. 重新启动前端项目,使配置的代理生效。可以使用命令npm run dev或者yarn dev来启动项目。

    bash npm run dev

    bash yarn dev

    这样重新启动项目后,请求应该会经过代理地址。

    如果以上步骤都没有解决问题,可能需要进一步排查代码或获取更多的上下文信息。