求助大佬们!为什么我用vue.config.js的proxy处理跨域失败!

我有鱼的记忆 2020-01-05 12:19:10
用的是vue/cli3,我的后台是http://localhost:8080,前端页面是http://localhost:8081,在根目录下创建了vue.config.js然后对proxy进行了配置
//vue.config.js
module.exports={
//选项...
devServer: {
proxy: {
'/api': {
target: 'http://localhost:8080/api',
changeOrigin: true,
ws: true,
pathRewrite: {
'^/api': ''
}
}
}
}
}
然后在main.js里对axios的请求的基础路径做了配置
import axios from "axios"
//配置请求时保存session信息,允许携带cookie发送请求
axios.default.withCredentials = true
//配置请求的基础路径
axios.defaults.baseURL = "/api"

最后在页面中请求
getbanner(){
var url="/product/banner";
this.axios.get(url).then(res=>{
this.banner_img=this.banner_img.concat(res.data)
})
}

然后有一次突然成功了,之后报错原因就是一直请求不到http://localhost:8081/api/product/banner

...全文
3561 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
前端_小菜鸟 2020-01-06
  • 打赏
  • 举报
回复
改成ip地址去代理看看
我有鱼的记忆 2020-01-06
  • 打赏
  • 举报
回复
引用 7 楼 前端_小菜鸟 的回复:
既然改了这个跟 代理里面全部采用主机ip去返回 cmd ipconfig查看你的主机地址,亲, axios.defaults.baseURL = 'http://127.0.0.1:8080' 不是127.0.0.1 我说的是你主机ip加端口 本地代理 target: 'http://localhost:8080/api', localhost 改成本机ip 吧http去掉 本地访问地址 主机ip地址加端口
我把api去掉就跨域可以了。谢谢了。
前端_小菜鸟 2020-01-06
  • 打赏
  • 举报
回复
既然改了这个跟 代理里面全部采用主机ip去返回 cmd ipconfig查看你的主机地址,亲, axios.defaults.baseURL = 'http://127.0.0.1:8080' 不是127.0.0.1 我说的是你主机ip加端口 本地代理 target: 'http://localhost:8080/api', localhost 改成本机ip 吧http去掉 本地访问地址 主机ip地址加端口
我有鱼的记忆 2020-01-06
  • 打赏
  • 举报
回复
引用 5 楼 前端_小菜鸟 的回复:
axios.defaults.baseURL = "/api" 吧这个直接改成你主机ip/api
把axios.defaults.baseURL = 'http://127.0.0.1:8080/api'或者改成axios.defaults.baseURL = 'http://127.0.0.1:8080' 都会报跨域错误 :8081/#/index:1 Access to XMLHttpRequest at 'http://127.0.0.1:8080/api/product/banner' from origin 'http://localhost:8081' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
前端_小菜鸟 2020-01-06
  • 打赏
  • 举报
回复
axios.defaults.baseURL = "/api" 吧这个直接改成你主机ip/api
我有鱼的记忆 2020-01-06
  • 打赏
  • 举报
回复
引用 3 楼 前端_小菜鸟 的回复:
target: 'http://localhost:8080/api', 这个地方 改成 target: '主机加端口' 尝试一下,记得启动本地服务器再尝试
还是不行,报错的原因是 xhr.js?b50d:172 GET http://localhost:8081/api/product/banner 404 (Not Found) 它不会自动重定向,找不到这个不会把请求发到http://localhost:8080/api/product/banner 这是为什么
前端_小菜鸟 2020-01-06
  • 打赏
  • 举报
回复
target: 'http://localhost:8080/api', 这个地方 改成 target: '主机加端口' 尝试一下,记得启动本地服务器再尝试
我有鱼的记忆 2020-01-06
  • 打赏
  • 举报
回复
引用 1 楼 前端_小菜鸟 的回复:
改成ip地址去代理看看
请问改哪里,改成127.0.0.1吗?

52,793

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧