axios異步訪問后台 @RequestParam 獲取參數 HTTP Status 400 - Required String parameter 'xx' is not present


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串華為對


免責聲明!

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



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