一、params和data
1、params和data是 axios 库中用于发送 HTTP 请求的两个属性。
2、params:
-
作用: 用于将请求参数附加到 URL 上,通常用于 GET 请求。
-
示例: 如果你有一个 API 地址为
/business/case/list
,并且需要传递查询参数,比如{ page: 1, size: 10 }
,你可以使用params
属性: -
import axios from 'axios'; function listCase(query) { return axios({ url: '/business/case/list', method: 'get', params: query // 例如,{ page: 1, size: 10 } }); }
- 后端接收参数:后端接收参数需要加注释@RequestParam,如
@GetMapping("/business/case/list") public String getTrendsTable(@RequestParam String query){ return null; }
2、data:
-
作用: 用于将请求数据附加到请求体中,通常用于 POST 请求。
-
示例: 如果你需要向服务器发送数据,例如在创建或更新资源时,你可以使用
data
属性:import axios from 'axios'; function createCase(caseData) { return axios({ url: '/business/case/create', method: 'post', data: caseData // 例如,{ name: 'Case Name', description: 'Case Description' } }); }
- 后端接收参数:后端接收参数需要加注释@RequestBody,如
@PostMapping("/business/case/create") public String getTrendsTable(@RequestBody CaseData caseData){ return null; }
@RequestBody解析参数时,如果参数本身就是字符串,可能会被额外的引号包裹。可以使用对象接收参数解决。
public class MyRequest {
private String myString;
// Getter and Setter
}
==================================================
@PostMapping("/myEndpoint")
public void myEndpoint(@RequestBody MyRequest request) {
String receivedString = request.getMyString();
// 处理接收到的字符串
}
3、总结:
params
用于处理请求的查询参数,而 data
用于处理请求体中的数据。这两者的使用取决于你与后端约定的接口规范和请求方式。通常,GET 请求使用 params
,而 POST 请求使用 data
,但也可以根据具体需求进行调整。
二、传递单参或者多参
1、单参数时
import request from "@/utils/request"
export function 函数名(参数名) {
return request({
url: '后端定义的API地址',
method: '后端定义的请求方式',
params/data: {参数名: 参数名}
}
import request from "@/utils/request"
export function 函数名(参数名) {
return request({
url: '后端定义的API地址',
method: '后端定义的请求方式',
params/data: 参数名
}
2、多参时
import request from "@/utils/request"
export function 函数名(参数名) {
return request({
url: '后端定义的API地址',
method: '后端定义的请求方式',
params/data: {参数名: 参数名, 参数名: 参数名, 参数名: 参数名 ……}
}
import request from "@/utils/request"
export function 函数名(参数对象) {
return request({
url: '后端定义的API地址',
method: '后端定义的请求方式',
params/data: 参数对象
}