使用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>
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐