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请求后端数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Vue2 Element description组件列合并详解

    Vue2 Element description组件列合并详解

    在使用Vue的时候经常会涉及到表格的列合并,下面这篇文章主要给大家介绍了给大家Vue2 Element description组件列合并的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-01-01
  • vue2.0 如何把子组件的数据传给父组件(推荐)

    vue2.0 如何把子组件的数据传给父组件(推荐)

    这篇文章主要介绍了vue2.0 如何把子组件的数据传给父组件,需要的朋友可以参考下
    2018-01-01
  • 解决vue项目Error:Cannot find module‘xxx’类报错问题

    解决vue项目Error:Cannot find module‘xxx’类报错问题

    当npm运行报错Error:Cannot find module 'xxx'时,通常是因为node_modules文件或依赖未正确安装,解决步骤包括删除node_modules和package-lock.json文件,重新运行npm install,并根据需要安装额外插件,若网络问题导致安装失败
    2024-10-10
  • 详解Nuxt.js部署及踩过的坑

    详解Nuxt.js部署及踩过的坑

    这篇文章主要介绍了详解Nuxt.js部署及踩过的坑,Nuxt.js 提供了两种发布部署应用的方式:服务端渲染应用部署 和 静态应用部署。本文主要说说服务端渲染应用部署,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • vue中控制mock在开发环境使用,在生产环境禁用方式

    vue中控制mock在开发环境使用,在生产环境禁用方式

    这篇文章主要介绍了vue中控制mock在开发环境使用,在生产环境禁用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • vue中关于click.stop的用法

    vue中关于click.stop的用法

    这篇文章主要介绍了vue中关于click.stop的用法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • vite项目如何集成eslint和prettier

    vite项目如何集成eslint和prettier

    这篇文章主要介绍了vite项目如何集成eslint和prettier问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • vue2和vue3子组件父组件之间的传值方法

    vue2和vue3子组件父组件之间的传值方法

    在组件化开发的过程中难免会遇见子组件和父组件之间的通讯那么这里讲关于vue2和vue3不同的通讯方式,文中有详细的代码示例供大家参考,感兴趣的同学可以阅读下
    2023-05-05
  • 使用yarn build 打包vue项目时静态文件或图片未打包成功的问题及解决方法

    使用yarn build 打包vue项目时静态文件或图片未打包成功的问题及解决方法

    这篇文章主要介绍了使用yarn build 打包vue项目时静态文件或图片未打包成功的问题及解决方法,解决方法不复杂通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2023-08-08
  • vue3+vite2中使用svg的方法详解(亲测可用)

    vue3+vite2中使用svg的方法详解(亲测可用)

    vue2的时候使用的是字体图标,缺点就是比较单一,到了vue3,相信浏览器的性能起来,所以这里记录一下,下面这篇文章主要给大家介绍了关于vue3+vite2中使用svg的相关资料,需要的朋友可以参考下
    2022-08-08

最新评论