Vue项目代理配置与响应标头的Set-Cookie的冲突怎么办?

作者站长头像
站长
· 阅读数 30

尝试通过 Set-Cookie 标头设置 cookie 的操作被禁止了,因为此标头的"Domain"属性对当前的主机网址而言无效

VUE 项目,proxy 配置如下:

  devServer: {
    // 方式一
    proxy:process.env.VUE_APP_API_BASE_URL
    // 方式二
    // proxy:{
    //   '/': {
    //     target:process.env.VUE_APP_API_BASE_URL,
    //     changeOrigin: true
    //   }
  },

proxy 是生效的,请求也能正常发出,但是因为相应表头Set-Cookie 中包含 Domain=haier.net,导致线上运行没问题,本地运行就会有这个错误提示:尝试通过 Set-Cookie 标头设置 cookie 的操作被禁止了,因为此标头的"Domain"属性对当前的主机网址而言无效。Vue项目代理配置与响应标头的Set-Cookie的冲突怎么办?

我的理解因为Domain的值和浏览器当前地址栏的地址不匹配造成的,但通过 proxy 代理就是为了在本地调试,肯定是localhost 而不是他返回的线上地址呀,这个应该怎么解决?

回复
1个回答
avatar
test
2024-06-23

案例:

proxy: {
    '/api': {
        target: 'http://localhost'
        changeOrigin: true,
        cookiePathRewrite: {
            '*': 'http://localhost:8080'
        },
        
        cookieDomainRewrite: {
            '*': 'localhost:8080'
        },
        pathRewrite: {
            ['^']: ''
        }
    }

实现:

    proxy: {
      '/': {
        target: process.env.VUE_APP_API_BASE_URL,
        changeOrigin: true,
        cookieDomainRewrite: 'localhost'
      }
    }
回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容