zoukankan      html  css  js  c++  java
  • 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值

  • 相关阅读:
    LeetCode OJ 112. Path Sum
    LeetCode OJ 226. Invert Binary Tree
    LeetCode OJ 100. Same Tree
    LeetCode OJ 104. Maximum Depth of Binary Tree
    LeetCode OJ 111. Minimum Depth of Binary Tree
    LeetCode OJ 110. Balanced Binary Tree
    apache-jmeter-3.1的简单压力测试使用方法(下载和安装)
    JMeter入门教程
    CentOS6(CentOS7)设置静态IP 并且 能够上网
    分享好文:分享我在阿里8年,是如何一步一步走向架构师的
  • 原文地址:https://www.cnblogs.com/shendaxia1/p/10768042.html
Copyright © 2011-2022 走看看