• 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值

  • 相关阅读:
    [loj6271]生成树求和
    [cf1209E]Rotate Columns
    [cf1491H]Yuezheng Ling and Dynamic Tree
    [atARC064F]Rotated Palindromes
    [cf1491G]Switch and Flip
    [cf1491F]Magnets
    [atARC063F]Snuke's Coloring 2
    [atARC062F]Painting Graphs with AtCoDeer
    [atARC061F]Card Game for Three
    [atARC112E]Rvom and Rsrev
  • 原文地址:https://www.cnblogs.com/shendaxia1/p/10768042.html
Copyright © 2020-2023  润新知