react中axios結(jié)合后端實(shí)現(xiàn)GET和POST請(qǐng)求方式
react axios結(jié)合后端實(shí)現(xiàn)GET和POST請(qǐng)求
區(qū)別在這里不做介紹了,POST方法比GET方法稍微安全一點(diǎn),GET方法比POST方法要快一些,個(gè)人感覺(jué)傳遞單個(gè)參數(shù)用GET,傳遞多個(gè)參數(shù)用POST。
get實(shí)現(xiàn)方式1(參數(shù)直接在url中)
- 前端
export function getAllSubstationsByUser() {
? return axios.get(`/api/integratedEnergy/all/${user}/substations`);
}- 后端
? ?@RequestMapping(value = "/all/{user}/all/substations", method = RequestMethod.GET)
? ? public ?ResponseEntity<List<Map<String, Object>>> getAllSubstationsByUserAreas(@PathVariable("user") String user) {
? ? String a = user;
? ? // todo 實(shí)現(xiàn)方法
}get時(shí)間方式2(作為JSONString跟在url末尾)
- 前端
? const params = {
? ? ? user: 'admin',
? ? };
? ??
export function getAllSubstationsByUser(params) {
? return axios.get(`/api/integratedEnergy/all/substations`, { params });
}- 后端
? ? @RequestMapping(value = "/all/substations", method = RequestMethod.GET)
? ? public ResponseEntity<List<Map<String, Object>>> getAllSubstationsByUserAreas(@RequestParam(value = "user", defaultValue = "") String user) {
? ? ? ? List<Map<String, Object>> mapList = new ArrayList<>();
? ? ? ? String a = user;
? ? ? ? // todo 實(shí)現(xiàn)方法
? ? ? ? return new ResponseEntity<>(mapList, HttpStatus.OK);
? ? }post實(shí)現(xiàn)(傳遞JSONObject)
- 前端
const params = { id: 'admin', name: '用戶' }
export function getChildrenDevicesByParent(params) {
? return axios.post(`/api/integratedEnergy/all/child/devices`, params);
}- 后端
? ?@RequestMapping(value = "/all/child/devices", method = RequestMethod.POST)
? ? public ResponseEntity<List<Map<String, Object>>> getStorageHistoryData(@RequestBody JSONObject params) {
? ? List<Map<String, Object>> mapList = new ArrayList<>();
?? ?String id = params.getString("id").trim());
?? ?String name = params.getString("name").trim());
?? ?// todo 實(shí)現(xiàn)方法
? ? return new ResponseEntity<>(mapList, HttpStatus.OK);
? ? }react 項(xiàng)目axios請(qǐng)求配置
axios請(qǐng)求封裝
1、安裝 npm I axios
2、首先在根目錄下建立server.js文件內(nèi)容如下
import axios from 'axios'
axios.defaults.baseURL = '' ?//根據(jù)項(xiàng)目自己更改
//一些配置,發(fā)起請(qǐng)求和響應(yīng)可以打印出來(lái)查看
axios.interceptors.request.use((config)=>{
? ? //這里是用戶登錄的時(shí)候,將token寫(xiě)入了sessionStorage中了,之后進(jìn)行其他的接口操作時(shí),進(jìn)行身份驗(yàn)證。
? ? config.headers.token = localStorage.getItem("cookie");
? ? return config;
})
//在response中
axios.interceptors.response.use(config =>{
? ? return config;
})
const http = {
? ? post:'',
? ? get:'',
? ? getParams:''
}http.post = function (api, data){ ?// post請(qǐng)求
? ? return new Promise((resolve, reject)=>{
? ? ? ? axios.post(api,data).then(response=>{
? ? ? ? ? ? resolve(response)
? ? ? ? })
? ? })
}
http.get = function (api, data){ // get請(qǐng)求
? ? return new Promise((resolve, reject)=>{
? ? ? ? axios.get(api,data).then(response=>{
? ? ? ? ? ? resolve(response)
? ? ? ? })
? ? })
}
http.getParams = function (api, param){ //get請(qǐng)求 需要傳參
? ? return new Promise((resolve, reject)=>{
? ? ? ? axios.get(api, {params: param}).then(response => {
? ? ? ? ? ? resolve(response.data)
? ? ? ? }, err => {
? ? ? ? ? ? reject(err)
? ? ? ? }).catch((error) => {
? ? ? ? ? ? reject(error)
? ? ? ? })
? ? })
}
export default http3、組件中使用
import http from '../../server'; ?// 首先引入server文件
http.get('api/接口名稱(chēng)').then(res => {
? ? ? ?console.log(res)
}).catch(error => {
? ? ? ?console.error(error)
})這個(gè)時(shí)候請(qǐng)求接口我們回遇到跨域的問(wèn)題,接下來(lái)告訴你們?nèi)绾谓鉀Q跨域
1、在根目錄下建立setupProxy.js文件內(nèi)容如下
const proxy = require('http-proxy-middleware');
module.exports = function(app) {
? app.use(
? ? '/api',
? ? proxy.createProxyMiddleware({
? ? ? target: 'http://172.21.211.132:8000', // 后臺(tái)服務(wù)地址以及端口號(hào)
? ? ? changeOrigin: true, // 是否跨域
? ? ? pathRewrite: {
? ? ? ? '^/api': '' // 路徑重寫(xiě),用/api代替target里的地址
? ? ? }
? ? })
? );
};總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- vue3實(shí)戰(zhàn)-axios請(qǐng)求封裝問(wèn)題(get、post、put、delete)
- Axios?get?post請(qǐng)求傳遞參數(shù)的實(shí)現(xiàn)代碼
- vue如何封裝Axios的get、post請(qǐng)求
- axios?gin的GET和POST請(qǐng)求實(shí)現(xiàn)示例
- Vue axios全局?jǐn)r截 get請(qǐng)求、post請(qǐng)求、配置請(qǐng)求的實(shí)例代碼
- vue axios數(shù)據(jù)請(qǐng)求get、post方法及實(shí)例詳解
- vue中axios處理http發(fā)送請(qǐng)求的示例(Post和get)
- vue中axios的get請(qǐng)求和post請(qǐng)求的傳參方式、攔截器示例代碼
相關(guān)文章
useEffect?返回函數(shù)執(zhí)行過(guò)程源碼解析
這篇文章主要為大家介紹了useEffect?返回函數(shù)執(zhí)行過(guò)程源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
React onClick/onChange傳參(bind綁定)問(wèn)題
這篇文章主要介紹了React onClick/onChange傳參(bind綁定)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02
React利用scheduler思想實(shí)現(xiàn)任務(wù)的打斷與恢復(fù)
這篇文章主要為大家詳細(xì)介紹了React如何利用scheduler思想實(shí)現(xiàn)任務(wù)的打斷與恢復(fù),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以參考一下2024-03-03
react源碼層分析協(xié)調(diào)與調(diào)度
本文主要介紹了深入理解React協(xié)調(diào)與調(diào)度(Scheduler)原理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2022-10-10
ReactNative實(shí)現(xiàn)圖片上傳功能的示例代碼
本篇文章主要介紹了ReactNative實(shí)現(xiàn)圖片上傳功能的示例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-07-07

