Vue代理请求数据出现404

Vue代理请求数据出现404

当使用代理解决跨域问题出现404错误时,一般有两种原因。

1. 需要进行pathRewrite重写

比如:你想访问的真实地址为http://39.98.123.211/user/list,你请求的url为/api/user/list
下面是你的代理程序

 module.exports = {
   lintOnSave:false,
   //配置代理跨域
   devServer:{
     proxy:{
       "/api":{
         target:"http://39.98.123.211",
       }
    }
  }
 }

如果没有对/api重写,那么代理完你真实的地址则为:http://39.98.123.211/api/user/list,明显多了/api,
因此会出现404错误。我们进行代理时,路径中有/api,则会使用http://39.98.123.211,
再加上url,则就为我们的请求地址 http://39.98.123.211/api/user/list。所以要对/api重写,
如果你的真实路径中正好为http://39.98.123.211/api/user/list,包含了/api那就不用重写。因此将代码改为:

module.exports = {
   lintOnSave:false,
   //配置代理跨域
   devServer:{
     proxy:{
       "/api":{
         target:"http://39.98.123.211",
         pathRewrite:{
         	'^/api':'',
         }
       }
    }
  }
 }

如果无法解决404错误,则使用第二种方法。

2.将代理代码放入config文件夹下的index.js文件中

如果你是vue3项目则在vue.config.js中写代理即可,如果你是vue2项目,代理请求出现404,
且第一种方法无效,则将代理代码写入config文件夹下的index.js中的proxyTable:{}中

module.exports = {
  dev: {

    // Paths
    assetsSubDirectory: 'static',
    assetsPublicPath: '/',
    proxyTable: {
      //配置代理跨域
          "/api":{
            target:"http://39.98.123.211",


      },
    },

由于我的真实地址中有/api所以就没进行/api重写。
记住代理写完,要重写运行项目。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值