《Vue3实战》第十一章 Axios,Vue里使用get、post请求

news/2024/7/15 20:52:57 标签: vue.js, 前端, javascript

《Vue3实战》篇章整体栏目
—————————————————————————————
【第一章】node.js/npm安装、配置
【第二章】创建项目和目录结构
【第三章】基础语法
【第四章】条件语句、循环语句
【第五章】计算、监听属性
【第六章】样式绑定和事件处理
【第七章】表单
【第八章】自定义指令
【第九章】路由
【第十章】Element plus指南
【第十一章】Vue里的Axios及使用get、post请求

—————————————————————————————

目录

  • 前言
  • 1、安装
  • 2、解决Java后台跨域的几种方式
    • 2.1、springboot项目添加跨域配置类
    • 2.2、在java类上增加@CrossOrigin配置
    • 2.3、在java方法上增加@CrossOrigin配置
    • 2.4、通过HttpServletResponse 配置跨域
  • 3、get调用
  • 4、post调用
  • 5、总结

—————————————————————————————

前言

Axios是一个基于promise 的 HTTP 库,可以用在浏览器和 node.js中。

1、安装

cnpm install axios

npm install axios

2、解决Java后台跨域的几种方式

2.1、springboot项目添加跨域配置类

@Configuration
public class CorsConfig implements WebMvcConfigurer {
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**") // 所有接口
                .allowCredentials(true) // 是否发送 Cookie
                .allowedOriginPatterns("*") // 支持域
                .allowedMethods(new String[]{"GET", "POST", "PUT", "DELETE"}) // 支持方法
                .allowedHeaders("*")
                .exposedHeaders("*");
    }
}

2.2、在java类上增加@CrossOrigin配置

package com.kelvin.spiderx.controller;

import org.springframework.web.bind.annotation.CrossOrigin;
/***
 * @title CsdnQcController
 * @desctption CSDN博客质量查询
 * @author kelvin
 * @create 2023/7/1 14:33
 **/
@CrossOrigin("*")
public class CsdnQcController {
}

2.3、在java方法上增加@CrossOrigin配置

 @CrossOrigin
 // 执行查询操作
 public ResutlDto executeCsdnQc(String username) {
     return ResutlTools.buildSuccess(csdnQcService.allBlogQcDataByRest(username));
 }

2.4、通过HttpServletResponse 配置跨域

 // 执行查询操作
    public ResutlDto executeCsdnQc(String username , HttpServletResponse response) {
        //解决跨域问题
        response.setHeader("Access-Control-Allow-Origin", "*");
        response.setHeader("Access-Control-Allow-Methods", "POST, GET, PUT, OPTIONS, DELETE");
        response.setHeader("Access-Control-Max-Age", "3600");
        response.setHeader("Access-Control-Allow-Headers", "x-requested-with, Content-Type");
        response.setHeader("Access-Control-Allow-Credentials", "true");
        //返回数据时指定编码格式:utf-8
        response.setContentType("application/json;charset=utf-8");
        response.setCharacterEncoding("UTF-8");
        return ResutlTools.buildSuccess(csdnQcService.allBlogQcDataByRest(username));
    }

3、get调用

<template>  
  <h1>
  <button @click="invokeUserList">点我</button>  
  </h1>  
  <h1>
    <ol>
       <li v-for="userInfo in userList" :key="userInfo.id">
           {{userInfo.userAccount}}
       </li>
    </ol>
  </h1>
</template>
<script>javascript">
import axios from 'axios'
export default {
  name: 'HelloWorld',
  data(){
        return{
            userList:[]
        }
  },
  mounted(){
    this.invokeUserList();
  },
  methods:{
    invokeUserList(){
      //axios调用后台get方法
      axios.get("http://localhost:8001/user/userInfoList")
      .then(response =>{
          //对返回结果进行处理
          this.userList = response.data;
          console.log(this.userList);
      }).catch(function(error){
          //异常处理
          console.log(error);
      })
    }
  }
}
</script>

4、post调用

<template>  
  <h1>
  <button @click="invokeUserList">点我</button>  
  </h1>  
  <h1>
    <ol>
       <li v-for="userInfo in userList" :key="userInfo.id">
           {{userInfo.userAccount}}
       </li>
    </ol>
  </h1>
</template>

<script>javascript">
import axios from 'axios'
export default {
  name: 'HelloWorld',
  data(){
        return{
            userList:[]
        }
  },
  mounted(){
    this.invokeUserList();
  },
  methods:{
    invokeUserList(){
      axios.post("http://localhost:8001/user/userInfoList",
      {account:'tiger',pwd:'123456'})
      .then(response =>{
         this.userList = response.data;
         console.log(this.userList);
      }).catch(function(error){
          console.log(error);
      })
    }
  }
}
</script>

5、总结

在此,我们使用Vue里的Axios,调用了get、post请求。


http://www.niftyadmin.cn/n/1008690.html

相关文章

FreeRTOS—任务基础知识

文章目录 一、FreeRTOS任务特性二、FreeRTOS任务状态三、FreeRTOS任务优先级四、FreeRTOS任务实现五、任务控制块六、任务堆栈 一、FreeRTOS任务特性 简单没有使用限制&#xff08;任务数量没有显示&#xff0c;一个优先级下可以有多个任务&#xff09;支持抢占&#xff08;高…

MySQL中定时器的底层实现及使用方法详解

介绍定时器的概念和作用 MySQL中的定时器是一项强大的功能&#xff0c;它允许我们在数据库中创建定时任务&#xff0c;并在指定的时间间隔内自动执行这些任务。定时器可以用于定期执行特定的SQL语句、备份数据、生成报表等操作。本文将详细介绍MySQL中定时器的底层实现机制以及…

JAVA-编程基础-08-try-catch性能探究

Lsion <dreamlison163.com>, v1.0.0, 2023.04.01 JAVA-编程基础-08-try-catch性能探究 文章目录 JAVA-编程基础-08-try-catch性能探究try-catch会影响性能吗&#xff1f; try-catch会影响性能吗&#xff1f; 在 for 循环里面搞了个 try-catch&#xff0c;不知道try-cat…

红米K60刷入MIUI.EU安装面具magisk与root教程

文章目录 前言1.解锁BootLoader2.刷入Recovery3.刷入EU的ROM包4.刷入magisk面具后话 前言 教程大概就是四步&#xff0c;解锁&#xff0c;刷入rec&#xff0c;刷入系统&#xff0c;刷入面具&#xff0c;跟着教程走即可。这次是刷机方式&#xff1a;卡刷&#xff08;Recovery&a…

时间序列分解 | Matlab自适应噪音的完整集合经验模态分解CEEMDAN分解

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 时间序列分解 | Matlab自适应噪音的完整集合经验模态分解CEEMDAN分解 部分源码 %--------------------

html实现酷炫好看的个人介绍主页(附源码)

文章目录 1.设计来源1.1 主界面1.2 我的简介界面1.3 教育经历界面1.4 我的源码界面1.5 我的相册界面1.6 朋友评价界面1.7 热门文章界面1.8 联系我界面 2.效果和源码2.1 动态效果2.2 源代码2.3 代码目录 源码下载 作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csd…

Spring中@Transactional注解事务传播行为propagation参数说明

说明 在SpringBoot项目中&#xff0c;我们通常使用Transactional 去进行事务控制&#xff0c;而Transactional 注解中&#xff0c;有个比较关键的属性就是propagation。在一个多事务的环境中&#xff0c;一个事务方法调用另一个事务方法时&#xff0c;就会涉及到事务的传播行为…

C++获取当前时间(使用C库)

#define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <sstream> #include <ctime>int main() {time_t t time(nullptr);struct tm* now localtime(&t);std::stringstream timeStr;// 以下依次把年月日的数据加入到字符串中timeStr <<…