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

axios請求中以params或body形式傳遞參數(shù)的區(qū)別淺析

 更新時間:2023年04月07日 10:27:29   作者:學(xué)學(xué)學(xué)無止境  
最近在做自己項目中,做一個非常簡單的新增用戶場景,但是使用原生axios發(fā)送post請求的時候,還是踩了不少坑的,下面這篇文章主要給大家介紹了關(guān)于axios請求中以params或body形式傳遞參數(shù)的區(qū)別的相關(guān)資料,需要的朋友可以參考下

一、前言:

前端發(fā)送請求最常?的是get請求還有post請求,get請求只能傳query參數(shù),query參數(shù)都是拼在請求地址上的,post可以傳body和query兩種形;我在開發(fā)的時候通常使用的是Axios第三方庫進行網(wǎng)絡(luò)請求,所以這里主要是將Axios請求時query與body傳遞參數(shù)的區(qū)別

  • data----->body參數(shù)(也就是請求體)
  • params----->query參數(shù)(都是拼接在請求地址上)

二、Axios post

當(dāng)content-type為application/x-www-form-urlencoded時

1. axios 中post請求Content-Type默認為application/json,我們傳遞參數(shù)的時候,query里面的參數(shù)(簡稱對象,通過“{}”或者“new Object“創(chuàng)建)會被以&的方式憑借到請求地址的后面(get請求也是一樣的)

params參數(shù)如下:

 2.data里面的參數(shù)(簡單的對象,通過“{}”或者“new Object”創(chuàng)建的),會以Form Data的形式存在,但是Form Data里面把我們傳進去的整體當(dāng)成了一個key值,沒有value

  • 解決Form Data里面把我們傳進去的整體當(dāng)成了一個key值,沒有value的方法:導(dǎo)入qs庫(qs庫以及包含在axios中,不需要重新安裝),data里面的參數(shù)使用qs.stringify方法來轉(zhuǎn)換,轉(zhuǎn)換之后后端才能正常的獲取

當(dāng)content-type為application/json時:

post請求當(dāng)Content-Type設(shè)置為application/json;時,query(簡單對象)里面的參數(shù)仍然會被拼接到請求連接后面,但是data(簡單對象)里面的參數(shù)放到Request Payload中

三、代碼舉例說明

get請求

axios({
    method: 'GET',
    url: 'xxxxx',
    params: param,
  })
 
/or  get請求沒有請求體參數(shù)一說
 
axios({
    method: 'GET',
    url: '/xxx?message=' + msg,
  })

post請求

1.body參數(shù)

/* 編輯項?列表 */
export function editProjectList(params) {
  return request({
    url: 'xxxxx....',
    method: 'post',
    data: params// data就是body參數(shù)
  });
}

2.params參數(shù)

/* 增加客戶列表 */
export function addClientList(params) {
  return request({
    url: '....xxxx',
    method: 'post',
    params: params// params就是query參數(shù)
  });
}
 
export function addClientList(params) {
  return request({
    url: '....xxxx',
    method: 'post',
    params: {params}// params就是query參數(shù)
  });
}
 
export function addClientList(params) {
  return request({
    url: '....xxxx',
    method: 'post',
    params: {
        info:'heihei'
    }// params就是query參數(shù)
  });
}
 

四、總結(jié)

  • 使用post請求且content-type為application/x-www-form-urlencoded時,通常需要借助qs進行數(shù)據(jù)轉(zhuǎn)換,轉(zhuǎn)換后的數(shù)據(jù)發(fā)送給后端,后端才能正確的處理
  • params形式傳遞數(shù)據(jù)不管是get還是post請求,參數(shù)最后都是以拼接url的形式出現(xiàn)
  • get請求沒有body的傳參方式
  • 在跟后端同時對接接口的時候,如果你的請求參數(shù)params與body分不清,通常會出現(xiàn)405的錯誤狀態(tài)碼如:{"code":405,"success":false,"data":{},"msg":"Request method 'GET' not supported"}
  • 由于經(jīng)常用的是axios庫,所以發(fā)請求的時候要注意params和data的區(qū)別

到此這篇關(guān)于axios請求中以params或body形式傳遞參數(shù)的區(qū)別的文章就介紹到這了,更多相關(guān)axios請求傳遞參數(shù)的區(qū)別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

新疆| 五莲县| 花莲县| 万源市| 扎赉特旗| 赤峰市| 沾益县| 桃园市| 炎陵县| 报价| 文成县| 红安县| 中西区| 尚义县| 松原市| 饶阳县| 赤城县| 博客| 辉南县| 阿鲁科尔沁旗| 洪洞县| 石楼县| 新闻| 东乌| 邻水| 华蓥市| 鄂州市| 奈曼旗| 新竹县| 五指山市| 玉山县| 兴安盟| 班玛县| 正阳县| 乌拉特后旗| 绩溪县| 平顺县| 阳西县| 阿荣旗| 怀化市| 孟连|