vue中formdata傳值給后臺時參數(shù)為空的問題
formdata傳值給后臺時參數(shù)為空
在vue里面使用formData的時候參數(shù)值為空,是因為axios是進行了二次封裝,所以傳遞表達的時候會傳遞一個空表單過去
axios在進行二次封裝的時候回影響到原來的表單提交或者文件上傳, 所以可以用原生的發(fā)請求
// list 是一個對象數(shù)組
export const orinCatelogue = (list) => {
let fd = new FormData()
for(var i=0;i<list.length;i++) {
console.log(list[i])
console.log(Object.keys(list[i]))
console.log(Object.values(list[i]))
fd.append(Object.keys(list[i]),Object.values(list[i]))
console.log("---------")
}
return axios({
method: "post",
url: `sgcc/qa/catalogue`,
data: fd,
headers: { "Content-Type": "multipart/form-data" }
})
}比如輸入是:

控制臺輸出:

實際上傳遞的參數(shù):

使用formData時候傳遞參數(shù)是個空值的情況
關(guān)于在vue中使用axios,傳遞的參數(shù)是formData的情況(上傳文件,圖片,文檔等)
formData用途
1.將from表單元素的name和value結(jié)合,實現(xiàn)表單數(shù)據(jù)的序列化
2.異步上傳文件
使用formData
1.創(chuàng)建一個空對象
var formData = new FormData(); //大部分情況下,使用formData追加數(shù)據(jù),是通過append() Api來進行追加 formData.append(key,value) //取出追加的值 formData.get(key) //修改值 formData.set(key,newVale)
2.通過表單對formData進行初始化
<form id="myForm"> ? ? <p>name:<input type="text" name="name" ?value="xiaolong"></p> ? ??? ?<p>age:<input type="text" name="age" ?value="23"></p> ? ? <p><input type="button" id="btn" value="添加"></p> </form>
通過表單元素作為參數(shù),對formData進行初始化
var btn=document.querySelector("#btn");
btn.onclick=function(){
? ? //獲取表單元素
? ? var form=document.querySelector("#myForm");
? ? //初始化表單
? ? var formdata=new FormData(form);
?? ?//此時可以進行一個操作,獲取或者設(shè)置表單的值或者直接提交整個表單
? ? console.log(formdata.get("name"));//xiaolong
}具體表單的操作API
大部分可以從mdn上面查找到
舉個例子:
獲取表單數(shù)據(jù)或者獲取整個表單對應(yīng)key的數(shù)據(jù)
formData.get('age')//獲取一個key為age的值
formData.getAll('age')//獲取全部key為age的數(shù)據(jù)在vue里面使用formData的時候,因為axios是進行了二次封裝,所以傳遞表達的時候會傳遞一個空表單過去,這是因為axios在進行二次封裝的時候回影響到原來的表單提交或者文件上傳
因此在使用二次封裝axios的時候需要進行一個參數(shù)的設(shè)置
this.$axios({
? ? method: "post",
? ? url: `你的請求地址`,
? ? data: formD,//這個是我的fromdata
? ? headers: {
? ? transformRequest: [data => data]//此處是我進行設(shè)置的轉(zhuǎn)換數(shù)據(jù)類型
? ? }
})以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于Vue項目使用scss終端發(fā)出警告解決方法
這篇文章主要介紹了關(guān)于Vue項目使用scss終端發(fā)出警告的解決方法,出現(xiàn)這個問題的原因是項目中使用了DartSass舊版的JavaScriptAPI,這些API已被棄用,文章將解決的辦法介紹的非常詳細,需要的朋友可以參考下2025-04-04
Vue后臺管理系統(tǒng)之實現(xiàn)分頁功能示例
本文主要介紹了Vue后臺管理系統(tǒng)之實現(xiàn)分頁功能,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-12-12
Vue實現(xiàn)contenteditable元素雙向綁定的方法詳解
contenteditable是所有HTML元素都有的枚舉屬性,表示元素是否可以被用戶編輯。本文將詳細介紹如何實現(xiàn)contenteditable元素的雙向綁定,需要的可以參考一下2022-05-05
Ant?Design?Vue?走馬燈實現(xiàn)單頁多張圖片輪播效果
這篇文章主要介紹了Ant?Design?Vue?走馬燈實現(xiàn)單頁多張圖片輪播,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-07-07
Vue中響應(yīng)式系統(tǒng)實現(xiàn)原理圖文講解
Vue的響應(yīng)式實現(xiàn)是借助Object.defineProperty通過重寫getter和setter方法來進行的數(shù)據(jù)劫持,Vue3通過Proxy代理攔截對象中任意屬性的變化,通過Reflect反射對源對象的屬性進行操作,然后再在get里收集依賴在set里派發(fā)更新2023-03-03
Vue實現(xiàn)Echarts圖表寬高自適應(yīng)的實踐
本文主要介紹了Vue實現(xiàn)Echarts圖表寬高自適應(yīng)的實踐,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-11-11
vue實現(xiàn)微信公眾號h5跳轉(zhuǎn)小程序的示例代碼
本文主要介紹了vue實現(xiàn)微信公眾號h5跳轉(zhuǎn)小程序的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08

