vue-cli 设置跨域以后为什么还是以本地地址发送请求

我用 vue 和 django 搭建了前后台,进行跨域, 前端服务是 localhost:8080 ,后端是 localhost:8000,端口号不一样,我前端设置 跨域以后,发送请求还是以本地地址发送,我百度了很多,看自己设置的没有错,可能眼瞎了,大佬们帮忙看看,是我写错了,还是别的情况

vue.config.js

clipboard.png

axios

clipboard.png

昨天这样写请求的是http://localhost:8080/user/,报404错误,今天就变成http://localhost:8080/api/user/ 了,
实在搞不懂了

clipboard.png

不知道咋回事了,无语无语的简直,后台是这样的

clipboard.png

阅读 18.9k
6 个回答

为什么pathRewrite注释掉了。这个字段意思是要替换的子目录,应该写为

pathRewrite: {
    '^/api': ''
}

这样你访问localhost:8080/api/user就会转向 127.0.0.1:8000/user


如果配置为别的比如:

pathRewrite: {
    '^/api': '/hello'
}

这样你访问localhost:8080/api/user就会转向 127.0.0.1:8000/hello/user

vue.config.js 修改配置如下:

devServer:{
  proxy:{
    '/api':{
       target:'http://127.0.0.1:8000',
       ws:true,
       changOrigin:true,
       pathRewrite:{
          '^/api': '',
       }
       
     }
  }
}

另外,vue-cli启动的服务,代理的实现是通过 这个库实现的 http-proxy-middleware ;详细的参考文档 https://github.com/chimurai/h...

新手上路,请多包涵

为什么我post请求不行啊图片描述

这是代理访问 又不是真的跨域!只是通过webpack起了一个node服务代替你发送请求

我也出现了这个问题,兄弟你解决了吗

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题