使用axios访问远程资源 Uncaught (in promise) Error: Request failed with status code 404

本文介绍如何在Vue项目中使用axios处理跨域请求时遇到的404错误,并提供了解决方案,包括配置代理和路径重写等步骤。

使用axios处理请求时,当url是远程接口链接时,会报404的错误,如下:在这里插入图片描述
解决方法如下:
1.使用Vue-cli2创建的项目
config/index.js 中配置代理

proxyTable: {
      '/api': {
        target: 'http://47.102.115.146:8080',//代理的位置
        secure: true,
        changeOrigin: true, // 如果接口跨域,需要进行这个参数配置
        pathRewrite: { //路径重置
          '^/api': ""   //只要访问以api为开头的路径,就会通过此代理 不会存在跨域问题
        }
      }
    },

如果是Cli3创建的项目,在vue-config.js中的proxy中进行配置

2.App.vue中使用axios获取数据

<script>
import axios from "axios";
export default {
  name: "App",
  methods: {
    getDepartmentList() {
      axios.get("http://localhost:8080/api/department/departmentList").then(res=>{
          console.log(res)
      })
    }
  },
  created() {
      this.getDepartmentList()
  }
};
</script>

当访问localhost 8080接口的api时,代理会帮我们访问代理中uri的接口,获取想要访问的数据

执行npm run dev 运行项目
获取到了想要访问的数据:
在这里插入图片描述
在这里插入图片描述
将获取的信息通过data()以对象的形式返回:

<script>
import axios from "axios";
export default {
  name: "App",
  data(){
    return {
      departmentList:[]
      }
  },
  methods: {
    getDepartmentList() {
      axios.get("http://localhost:8080/api/department/departmentList").then(res=>{
          const response=res.data
          this.departmentList=response.data
      })
    }
  },
  created() {
      this.getDepartmentList()
  }
};
</script>

运行后,通过浏览器的Vue插件查看数据:
在这里插入图片描述
将数据以表格的形式展示在页面

<template>
  <div id="app">
    <table border="1">
      <tr v-for="item in departmentList" :key="item.id">
        <td>{{ item.id }}</td>
        <td>{{ item.name }}</td>
      </tr>
    </table>
  </div>
</template>
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值