最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

react中axios結(jié)合后端實(shí)現(xiàn)GET和POST請(qǐng)求方式

 更新時(shí)間:2023年02月13日 15:43:15   作者:成續(xù)源  
這篇文章主要介紹了react中axios結(jié)合后端實(shí)現(xiàn)GET和POST請(qǐng)求方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

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 http

3、組件中使用

import http from '../../server'; ?// 首先引入server文件

http.get('api/接口名稱').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è)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • ahooks?useRequest源碼精讀解析

    ahooks?useRequest源碼精讀解析

    這篇文章主要為大家介紹了ahooks?useRequest的源碼精讀解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • React hook 'useState' is called conditionally報(bào)錯(cuò)解決

    React hook 'useState' is calle

    這篇文章主要為大家介紹了React hook 'useState' is called conditionally報(bào)錯(cuò)解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • 詳解在React項(xiàng)目中安裝并使用Less(用法總結(jié))

    詳解在React項(xiàng)目中安裝并使用Less(用法總結(jié))

    這篇文章主要介紹了詳解在React項(xiàng)目中安裝并使用Less(用法總結(jié)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • React實(shí)現(xiàn)一個(gè)拖拽排序組件的示例代碼

    React實(shí)現(xiàn)一個(gè)拖拽排序組件的示例代碼

    這篇文章主要給大家介紹了React實(shí)現(xiàn)一個(gè)拖拽排序組件?-?支持多行多列、支持TypeScript、支持Flip動(dòng)畫(huà)、可自定義拖拽區(qū)域,文章通過(guò)代碼示例介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • React深入了解原理

    React深入了解原理

    React是用于構(gòu)建用戶界面的JavaScript庫(kù),?[1]??起源于Facebook的內(nèi)部項(xiàng)目,該公司對(duì)市場(chǎng)上所有?JavaScript?MVC框架都不滿意,決定自行開(kāi)發(fā)一套,用于架設(shè)Instagram的網(wǎng)站
    2022-07-07
  • React Fragment 和空標(biāo)簽(<></>)用法及區(qū)別詳解

    React Fragment 和空標(biāo)簽(<></>)用法及區(qū)別詳解

    本文詳細(xì)介紹了React中的Fragment和空標(biāo)簽的使用,包括它們的區(qū)別、使用場(chǎng)景、性能考慮以及最佳實(shí)踐,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2025-01-01
  • 解決React報(bào)錯(cuò)Invalid hook call

    解決React報(bào)錯(cuò)Invalid hook call

    這篇文章主要為大家介紹了React報(bào)錯(cuò)Invalid hook call解決方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • react?express實(shí)現(xiàn)webssh?demo解析

    react?express實(shí)現(xiàn)webssh?demo解析

    這篇文章主要為大家介紹了詳解react?express實(shí)現(xiàn)webssh?demo解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • React+redux項(xiàng)目搭建流程步驟分析

    React+redux項(xiàng)目搭建流程步驟分析

    本文介紹了如何搭建一個(gè)React項(xiàng)目,包括創(chuàng)建項(xiàng)目、去除無(wú)用文件夾、配置項(xiàng)目、安裝craco擴(kuò)展webpack配置、配置代碼格式化、創(chuàng)建路由、集成Redux等步驟,感興趣的朋友跟隨小編一起看看吧
    2025-01-01
  • react native之ScrollView下拉刷新效果

    react native之ScrollView下拉刷新效果

    這篇文章主要為大家詳細(xì)介紹了react native之ScrollView下拉刷新效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09

最新評(píng)論

柳江县| 周口市| 阜新市| 鹤岗市| 靖安县| 遵义县| 家居| 红桥区| 当涂县| 昌宁县| 焦作市| 禄丰县| 云和县| 社会| 邵武市| 临漳县| 武陟县| 江城| 西平县| 弥渡县| 剑川县| 五常市| 霍林郭勒市| 日照市| 巴里| 疏勒县| 阜康市| 于田县| 白水县| 佛坪县| 黄浦区| 徐水县| 京山县| 扶风县| 泰州市| 大埔县| 旅游| 铁岭县| 普兰店市| 扬中市| 大同县|