vue中使用axios提交參數要注意的地方(post方法后台獲取不到參數的解決方法)


handleModifyStatus(row, status) {

console.log("進入方法1")

let userId = row.userid

deleteUser({userId}).then(()=>{

console.log("進入刪除方法2")

})

 

這是一個刪除一條信息記錄的vue前端提交數據寫法,要注意這一句:

 

let userId = row.userid

deleteUser({userId}).then(()=>{

 

 

也可以寫成:deleteUser(row.userid).then(),但是這樣寫userId就只是把值傳遞到后台了,但是就像鍵值對沒有鍵一樣,這時候傳遞到后台的鍵就會是他們自己創建的類似於:

/user/deleteUser?0=54這樣的,這個54的鍵值是0,而后台參數是userId,所以后台就不能得到正確的參數,但是想上面那樣,把row.userid賦值給userId,然后用大括號放在方法中,后台就能得到值了,要注意你去儲存row.userid的變量要和后台方法中的形參一樣。

 

 

關於vue中參數提交的問題:

參數用params提交

export function getPermission(token) {//登陸后自動執行這個方法,獲取用戶權限,這里的token我們傳的是userid

return request({

url: '/user/info',

method: 'get',

params:  token 

})

}

 

 參數用data提交

export function getPermission(token) {//登陸后自動執行這個方法,獲取用戶權限,這里的token我們傳的是userid

return request({

url: '/user/info',

method: 'get',

data:  token 

})

}

 

參數用params提交,不管提交方法是‘get’還是‘post’都是以url?參數1&參數2 的形式提交的

參數用data提交,如果參數有多個鍵值對,axios就會自動轉換為json格式的參數,此時如果用post就不會在url后面帶參數,但是后台沒法正常接收json值,這里說兩種方法解決:

1qs.stringfy()去轉化一下data這樣到后台就不會是json格式的數據,

2后台方法上加上@ResqustBody這樣就能接收json值


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM