vue请求后端数据和跨域问题解决

 更新时间:2023年05月17日 08:25:00   作者:萧熙  
这篇文章主要介绍了vue请求后端数据和跨域问题,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

最近遇到的一个问题 后端写好的接口,前端怎么获取数据呢?

这是我后端的接口:GET 接口

这是我前端运行的项目地址:

简单使用:

咱门前端使用 颇受好评的 axios 来发起请求

这是它的官网:https://www.axios-http.cn/

不过要在vue中使用它,就需要先安装 打开终端 输入一下命令

npm install axios

然后在需要使用的 页面 <script> 中标签 引入 axios就行了

import axios from 'axios'

然后在methods中 创建一个函数:代码如下

a() {
      // const axios = require('axios');  // 官方给出的例子 这段话类似于 import
      axios.get('http://localhost:8088/user') // 这里填写后端的地址
        .then(function (response) {
          // 处理成功情况
          console.log(response);
        })
        .catch(function (error) {
          // 处理错误情况
          console.log(error);
        })
        .then(function () {
          // 总是会执行
        });
    }

require 和 import 具体详情,可以查阅相关资料

写完之后在 div中写一个 <button> 标签<button @click="a()">点我 a</button>

打开控制台可以看到,data里面有三条数据

看到这里,我们就请求到了后端数据(后端一定要允许跨域请求)

改进

  写完你这里例子之后,又写了几个请求,发现呢,每次都要复制黏贴,还有好多重复性代码,就想到,应该可以把这个axios封装一下

先去网上查找一些封装的案例,发现,,,,看不懂(并不难的鸭子)

  然后自己手动 简单封装一下 axios

在src 目录下新建一个 utils 目录,然后再建一个 request.js 文件在里面写一下代码

/*引入axios*/
import axios from 'axios'
const request = axios.create({
    baseURL: 'http://localhost:8088' // 接口服务器地址
  });
//   // 创建实例后修改默认值
//   instance.defaults.headers.common['Authorization'] = AUTH_TOKEN;
// //前端采用export.default,在写后端代码时用module.export
export default request

在src中新建一个 api 目录, 在目录中新建有一个 demo.js ( 根据接口作用取名字,这里为测试demo )写入以下代码

import request from '../utils/request' // 引入 request 类(模块)
export function getList(params={}) {
    return request({
        methods:'GET',
        url:'/user',
        params,
    })
}

在url中,可以直接 用 / 和接口 地址拼接 然后设置methods 方式 ,axios 中默认为 get,getList是一个方法名

回到vue的页面上,在我们需要的vue中写 import { getList } from "../api/demo" 导入这个方法

然后再methods中创建一个函数 ,重写这个方法

b(){
      getList().then(function(response){
        console.log(response);
      }).catch(function(error){
        console.log(error);
      });
    }

最后这个方法可以用于点击事件,如果与crated中,就必须是使用回调函数

getList(){
    listUser()
      .then(response =>{ // 回调函数使用箭头函数来使用。(responde)=>{}
        this.tableData = response.data;
      })
    },

跨域问题解决:

  凡事不要慌,能解决的事,那都不是事~

  我是在后端Controller 层加了 @CrossOrigin 注解

  跨域报错:

如有问题,后续更新,先记录一下

到此这篇关于vue请求后端数据和跨域问题的文章就介绍到这了,更多相关vue请求后端数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue+element ui实现锚点定位

    vue+element ui实现锚点定位

    这篇文章主要为大家详细介绍了vue+element ui实现锚点定位,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • vue循环语句v-for中的元素绑定值

    vue循环语句v-for中的元素绑定值

    这篇文章主要介绍了vue循环语句v-for中的元素绑定值问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • element-ui中如何给el-table的某一行或某一列加样式

    element-ui中如何给el-table的某一行或某一列加样式

    本文主要介绍了element-ui中怎么给el-table的某一行或某一列加样式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • vue里的axios如何获取本地json数据

    vue里的axios如何获取本地json数据

    这篇文章主要介绍了vue里的axios如何获取本地json数据,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • Vue之Mixins(混入)的使用方法

    Vue之Mixins(混入)的使用方法

    这篇文章主要介绍了Vue之Mixins(混入)的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • 一文详解Vue中可重用组件的3个主要问题

    一文详解Vue中可重用组件的3个主要问题

    当我们谈论或讨论在 Vue 中创建用户界面组件时,经常会提到可重用性,在 Vue 中创建真正的可重用组件可能很棘手,在本文中,我将探讨可重用组件的概念、应用这些组件时面临的问题,以及为什么必须尽可能克服这些问题,需要的朋友可以参考下
    2023-10-10
  • el-table fixed固定列导致错位的解决方法介绍

    el-table fixed固定列导致错位的解决方法介绍

    ElementUI中el-table设置指定列固定不动,不受滚动条影响,下面这篇文章主要给大家介绍了关于el-table fixed固定列导致错位的解决方法,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-11-11
  • 浅析vue 函数配置项watch及函数 $watch 源码分享

    浅析vue 函数配置项watch及函数 $watch 源码分享

    这篇文章主要介绍了vue 函数配置项watch及函数 $watch 源码分享 ,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-11-11
  • Vue项目如何获取本地文件夹绝对路径

    Vue项目如何获取本地文件夹绝对路径

    这篇文章主要介绍了Vue项目如何获取本地文件夹绝对路径问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • Vue.js中该如何自己维护路由跳转记录

    Vue.js中该如何自己维护路由跳转记录

    这篇文章主要给大家介绍了关于Vue.js中该如何自己维护路由跳转记录的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Vue.js具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05

最新评论