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值,這里說兩種方法解決:
1用qs.stringfy()去轉化一下data這樣到后台就不會是json格式的數據,
2后台方法上加上@ResqustBody這樣就能接收json值