封装Axios的POST和GET
对Axios的POST和GET请求的封装
POST请求的两种形式。
参数JSON格式
/**
* 传递json数据,在请求报文中是json格式
* @param url
* @param params
* @returns {AxiosPromise}
*/
function doPostJson(url, params) {
return axios({
url: url,
method: 'post',
data: params
})
}
调用
let param = {
name:this.name,
phone:this.phone,
code:this.code
}
doPostJson('/v1/user/login',param)
.then(resp=>{
if(resp && resp.data.code == 200){
// 事务处理
}
})
后端接收参数
@PostMapping("/v1/user/login")
public RespResult userRealname(@RequestBody LoginVO loginVO){
// loginVo封装了name,phone,code三个字段
// 事务处理
}
url?key=value形式
import qs from 'qs';
/**
* 请求是 key=value参数格式
* @param url
* @param params
* @returns {AxiosPromise}
* */
function doPost(url, params) {
//qs 把json对象转为 a=1&b=2 , 也可以反向
let requestData = qs.stringify(params);
return axios.post(url, requestData);
}
调用
doPost('/v1/user/login',{ name:this.name,phone:this.phone,code:this.code})
.then(resp=>{
if( resp && resp.data.code == 200){
// 事务处理
}
})
后端接收参数
@PostMapping("/v1/user/login")
public RespResult userLogin(@RequestParam String phone,
@RequestParam String pword,
@RequestParam String scode){
// 事务处理
}
Get请求
/**
*
* @param url url请求的地址,去掉了baseURL以外的部分
* @param params 是对象,json对象。表示请求的参数
* @returns {AxiosPromise}
*/
function doGet(url, params) {
return axios({
url: url,
method: 'get',
params: params
});
}
测试Get
doGet('/v1/product/list', {ptype: productType, pageNo: pNo, pageSize: pSize})
.then(resp => {
if (resp) {
// 事务处理
}
})
Get请求后端
@GetMapping("/v1/product/list")
public RespResult queryProductByType(@RequestParam("ptype") Integer pType,
@RequestParam("pageNo") Integer pageNo,
@RequestParam("pageSize") Integer pageSize){
// 事务处理
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了