zoukankan      html  css  js  c++  java
  • axios异步访问后台 @RequestParam 获取参数 HTTP Status 400

    axios 异步请求三种方式

    1、Content-Type: application/json

    后台使用@RequestBody

    获取参数

    import axios from 'axios'
    let data = {code:'123',name:'yyyy'};
    axios.post(`${this.$url}/test/testRequest`,data)
    .then(res=>{
        console.log('res=>',res);            
    })

    2、Content-Type: multipart/form-data

    后台使用HttpServletRequest request 

    获取参数

    import axios from 'axios'
    let data = new FormData();
    data.append('code','1234');
    data.append('name','yyyy');
    axios.post(`${this.$url}/test/testRequest`,data)
    .then(res=>{
        console.log('res=>',res);            
    })

    3、Content-Type: application/x-www-form-urlencoded

    import axios from 'axios'
    import qs from 'Qs'
    let data = {'code':'234','name':'yyyy'};
    axios.post(`${this.$url}/testRequest`,qs.stringify({
        data
    }))
    .then(res=>{
        console.log('res=>',res);            
    })

    后台接收参数写法

    @PostMapping("testRequest")
    public String resetPwd( String code, String name) {
            System.out.println(code);
            return "xxx";
        }

    如果使用@RequestParam 则需要这样写

      @PostMapping("testRequest")
        public String testRequest(@RequestParam(value = "code",required = false) String code, @RequestParam(value = "name", required = false) String name) {
            System.out.println(code);
            return "dfdfdfd";
        }

    总结:
    application/x-www-form-urlencoded请求是表单请求,可以用@RequestParam一个一个获取参数,当Content-Type == application/json 前端传来的是json串,用@RequestParam是获取不到的,需要用@RequestBody将json串华为对

  • 相关阅读:
    【C++类与对象】实验四(二)
    【微信小程序——开发步骤1】
    【C++/实验三】类和对象
    【C++/类与对象总结】
    【C++/函数】实验2
    食堂APP-项目开发 语音输入(1)
    食堂APP-项目开发及踩坑记录(7)
    食堂APP-项目开发及踩坑记录(6)
    食堂APP-项目开发及踩坑记录(5)
    食堂APP-项目开发及踩坑记录(4)
  • 原文地址:https://www.cnblogs.com/nongzihong/p/12886684.html
Copyright © 2011-2022 走看看