当前位置: 首页 > article >正文

Vue3集成axios实现ajax请求

工具安装

安装axios工具插件,务必保证是在客户端项目根目录下安装。

yarn add axios@next

简单测试 

src/views/Home.vue,先测试服务端的跨域资源共享是否能使用,代码:

<template>
  <div class="home">
    <Header></Header>

    <Footer></Footer>
  </div>
</template>

<script setup>
import Header from "../components/Header.vue"
import Footer from "../components/Footer.vue"


// 测试CORS的跨域配置是否有问题
import axios from "axios"
const http = axios.create()
// 测试服务端的跨域是否配置成功
http.get("http://local.api.leshen.cn:8000/home/test").then(response=>{
  console.log(response.data);
})


</script>

<style scoped>

</style>

建立工具类

  1. 配置axios请求拦截器和响应拦截器。

src/utils/http.js,代码:

import axios from "axios"

const http = axios.create({
    // timeout: 2500,                          // 请求超时,有大文件上传需要关闭这个配置
    baseURL: "http://local.leshen.cn:8000",     // 设置api服务端的默认地址[如果基于服务端实现的跨域,这里可以填写api服务端的地址,如果基于nodejs客户端测试服务器实现的跨域,则这里不能填写api服务端地址]
    withCredentials: false,                    // 是否允许客户端ajax请求时携带cookie
})

// 请求拦截器
http.interceptors.request.use((config)=>{
    console.log("http请求之前");
    return config;
}, (error)=>{
    console.log("http请求错误");
    return Promise.reject(error);
});

// 响应拦截器
http.interceptors.response.use((response)=>{
    console.log("服务端响应数据成功以后,返回结果给客户端的第一时间,执行then之前");
    return response;
}, (error)=>{
    console.log("服务端响应错误内容的时候。...");
    return Promise.reject(error);
});

export default http;
<template>
  <div class="home">
    <Header></Header>

    <Footer></Footer>
  </div>
</template>

<script setup>
import Header from "../components/Header.vue"
import Footer from "../components/Footer.vue"
// 测试CORS的跨域配置是否有问题
import http from "../utils/http.js"

// // 测试CORS的跨域配置是否有问题
// import axios from "axios"
// const http = axios.create()
// // 测试服务端的跨域是否配置成功
// http.get("http://local.api.leshen.cn:8000/home/test").then(response=>{
//   console.log(response.data);
// })

// 测试服务端的跨域是否配置成功
http.get("/home/test").then(response=>{
  console.log(response.data);
})

</script>

<style scoped>

</style>


http://www.kler.cn/news/361502.html

相关文章:

  • STM32的Flash页擦除操作的疑惑
  • 深度学习——线性神经网络(五、图像分类数据集——Fashion-MNIST数据集)
  • N9042B UXA 信号分析仪
  • 数智教育专场(二)
  • 群晖通过 Docker 安装 MySQL
  • NVR小程序接入平台/设备EasyNVR多品牌NVR管理工具/设备的多维拓展与灵活应用
  • linux—基础命令及相关知识
  • Mysql同步数据库异常
  • 使用InternVL、LMDeploy和GTE搭建多模态RAG系统
  • 界面耻辱纪念堂--可视元素03
  • Python 曲线绘制
  • C++ 红黑树
  • 鸿蒙--页面跳转
  • 【鸿蒙NEXT】SaveButton保存图片
  • 无需扩散,下一个token预测直达AGI!
  • kubeadm部署的k8s证书过期解决
  • AWD的复现
  • ECharts饼图-饼图34,附视频讲解与代码下载
  • 480p 720p 1080p 2k 4k 8k 12k分辨率视频分别占用多大带宽?
  • TikTok运营对IP有什么要求?
  • 修改el-table默认滚动条样式
  • 【建议收藏】100个运维知识,懂一半绝对高手,零基础入门到精通_it运维项目的知识库内容
  • OpenCV视觉分析之运动分析(3)背景减除类:BackgroundSubtractorKNN的一系列get函数的使用
  • 软件工程python毕设课题大全
  • 信息收集-IP查询和利用搜索引擎收集
  • 国产大模型基础能力大比拼 - 计数:通义千文 vs 文心一言 vs 智谱 vs 讯飞-正经应用场景的 LLM 逻辑测试