1、params 傳參
參數拼接在地址 url 的后面給后臺;地址欄中可見
案例1
地址欄:https://xxxxxxxx/admin/clues/detail?id=558
接口代碼:
export function getClueDetail(query: any) {return request<clueItem>({url: '/clues/detail',method: 'get',params: query})
}
對于這個接口而言,query是接口被調用時接收參數的形參;params即是傳參方式,而query就是參數,其會自動拼接在請求地址的 url 后面,以問號分隔,數據之間通過&連接;這樣我們可以直接在地址欄中看到請求的參數
案例2
地址欄: http://192.168.7.188:3000/registers/list?name=&mobile=&IDNumber=&page=1&perPage=10000
export function getPeopleList(query) {return request({url: "/registers/list",method: "get",params: query,});
}
在本接口中 query 中就是查詢參數,其中包含了很多個參數;
2、data 傳參
使用 data 傳參,其會把數據拼接在請求體里 (body參數);地址欄中看不到請求參數
案例3
export function postClueCreate(data: clueItem) {return request<clueItem>({url: '/clues/create',method: 'POST',data: data})
}
在控制臺中可以打印出來(這里不僅可以展示 data傳參中的參數,也可以展示params傳參中的參數)
3、headers 傳參
headers 傳參 方式 用的比較少
import axios from 'axios'
import store from '@/store'
const myAxios = axios.create({// 基地址baseURL: 'http://xxxxxx'
})
const getUserInfoAPI = () => {return request({url: '/my/userinfo'// method不寫默認就是'get'方式請求headers: {Authorization: store.state.token}})
}
案例4 (項目實操案例)
一個接口 同時使用 params和data 這兩種傳參方式
params的參數會拼接在地址欄中,而data中的參數會拼接在請求體body中,可以在控制臺看到二者
接口
export function updatePeople(data) {return request({url: "/registers/update",method: "post",// 從data中取出想要的參數,裝入params中params: {id: data.id,},// data 直接照單全收data: data,});
}
地址欄:
參數