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.$set()或者Object.assign()修改对象新增响应式属性的方法

    使用Vue.$set()或者Object.assign()修改对象新增响应式属性的方法

    vue代码中,只要在data对象里定义的对象,赋值后,任意一个属性值发生变化,视图都会实时变化,这篇文章主要介绍了使用Vue.$set()或者Object.assign()修改对象新增响应式属性,需要的朋友可以参考下
    2022-12-12
  • Vue对象赋值视图不更新问题及解决方法

    Vue对象赋值视图不更新问题及解决方法

    这篇文章主要介绍了Vue对象赋值视图不更新问题及解决方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-06-06
  • vue3+vite动态加载路由,本地路由和线上路由匹配方式

    vue3+vite动态加载路由,本地路由和线上路由匹配方式

    这篇文章主要介绍了vue3+vite动态加载路由,本地路由和线上路由匹配方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • vue element表格某一列内容过多,超出省略号显示的实现

    vue element表格某一列内容过多,超出省略号显示的实现

    这篇文章主要介绍了vue element表格某一列内容过多,超出省略号显示的实现方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • 什么是Vue.js框架 为什么选择它?(第一课)

    什么是Vue.js框架 为什么选择它?(第一课)

    Vue.js框架是什么,为什么要选择它?这篇文章为大家介绍目前前端技术使用的趋势,以及Vue.js的优点和适用场景等,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • vue移动端使用canvas签名的实现

    vue移动端使用canvas签名的实现

    这篇文章主要介绍了vue移动端使用canvas签名的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • Vue生命周期与后端交互实现流程详解

    Vue生命周期与后端交互实现流程详解

    Vue的生命周期就是vue实例从创建到销毁的全过程,也就是new Vue()开始就是vue生命周期的开始。Vue实例有⼀个完整的⽣命周期,也就是从开始创建、初始化数据、编译模版、挂载Dom->渲染、更新->渲染、卸载等⼀系列过程,称这是Vue的⽣命周期
    2022-11-11
  • vue data有值,但是页面{{}} 取不到值的解决

    vue data有值,但是页面{{}} 取不到值的解决

    这篇文章主要介绍了vue data有值,但是页面{{}} 取不到值的解决,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • Vue全局loading及错误提示的思路与实现

    Vue全局loading及错误提示的思路与实现

    这篇文章主要给大家介绍了关于Vue全局loading及错误提示的思路与实现方法,文中通过示例代码介绍的非常详细,对大家学习或者使用Vue具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-08-08
  • 详解关于element级联选择器数据回显问题

    详解关于element级联选择器数据回显问题

    这篇文章主要介绍了详解关于element级联选择器数据回显问题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-02-02

最新评论