vue请求接口常用写法(axios)
1. 项目根目录下新建一个utils文件夹,并新建一个request.js文件(注意:是以axios方法请求的,所以需要先安装axios或cdn引入)
安装:
- npm
npm install axios -S
- yarn
yarn add axios -S
- cdn
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
&&配置代码
import axios from 'axios' const request = axios.create({ // 接口的服务器基准路径 baseURL: 'http://toutiao.itheima.net', // axios 默认会在内部这样来处理后端返回的数据 // return JSON.parse(data) }] }) // 请求拦截器 // Add a request interceptor request.interceptors.request.use(function (config) { // 请求发起会经过这里 // config:本次请求的请求配置对象 const { user } = store.state if (user && user.token) { config.headers.Authorization = `Bearer ${user.token}` } // 注意:这里务必要返回 config 配置对象,否则请求就停在这里出不去了 return config }, function (error) { // 如果请求出错了(还没有发出去)会进入这里 return Promise.reject(error) }) // 响应拦截器 export default request
2.在项目根目录下新建一个api文件夹存放获取api的js文件,并在js文件中导入request.js
请求分类:
- get:请求数据
- post:提交数据
- put:更新数据(所有的数据都推送到后端)
- patch:更新数据(只推送更新的数据到后端)
- delete:删除数据
&&示例代码
export const 自定义的名字 = data => { return request({ method: '请求类型', url: 'api地址/${data}' }) }
参数区别:
- GET请求时,使用params,参数会直接追加至请求字符串(url)后
export const 自定义的名字 = params => { return request({ method: 'GET', url: 'api地址', params: { name: 'abc' } }) }
或者
export const 自定义的名字 = params => { return request({ method: 'GET', url: 'api地址', params: params // 可直接简写为params }) }
- POST请求时,使用data,参数是添加到请求体(body)的
export const 自定义的名字 = data => { return request({ method: 'POST', url: 'api地址', data: { name: 'abc' } }) }
或者
export const 自定义的名字 = data => { return request({ method: 'POST', url: 'api地址', data: data // 可直接简写为data }) }
3.请求的数据类型
常见的数据请求类型:
- raw
可以上传任意格式的文本,文本不做任何修饰传到服务端。比如传一些xml,或者json数据,或者text文本数据。
- x-www-form-urlencoded
只能上传键值对,而且键值对都是通过&间隔分开的。
- form-data
可以上传文件或者键值对,最后都会转化为一条消息。
一般在进行接口传走前要自己处理,方法如下;
async 处理函数名 (blob) { try { // 错误的用法 // 如果接口要求 Content-Type 是 application/json // 则传递普通 JavaScript 对象 // updateUserPhoto({ // photo: blob // }) // 如果接口要求 Content-Type 是 multipart/form-data // 则你必须传递 FormData 对象 const formData = new FormData() formData.append('接口参数名', blob) const { data } = await 处理函数名(formData) } catch (err) { // 。。。 }
- binary
只可以上传二进制数据,通常用来上传文件,由于没有键值,所以,一次只能上传一个文件,不常用。
分类:
Web前端 / VUE
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异