今天在用 axios 發送一個跨域的post請求時,遇到了一個坑:Uncaught (in promise) Error: Request failed with status code 400。
前臺代碼如下:
axios({ method: "post", url: "http://localhost:8080/employee/testpost", data: { username: '234234', password: '4565' } }).then((res) => { console.log(res.data); })
后臺代碼如下:
@CrossOrigin @PostMapping("/employee/testpost") @ResponseBody public Result testpost(@RequestParam(value = "username", required = true) String username, @RequestParam(value = "password", required = true) String password) { System.out.println(username + " , " + password); Result json = new Result(); json.setResult(1); return json; }
而當我在postman上發送post請求時就能成功獲得返回數據。困擾了很久,才發現是請求頭的問題。axios請求頭的 Content-Type 默認是 application/json,而postman默認的是 application/x-www-form-urlencoded。我這里采取的解決辦法是改變后臺的接收方式:
@CrossOrigin @PostMapping("/employee/testpost") @ResponseBody public Result testget(@RequestBody Map map) { System.out.println(map.get("username") + " , " + map.get("password")); Result json = new Result(); json.setResult(1); return json; }
這樣數據就成功返回了!
以上這篇解決axios發送post請求返回400狀態碼的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com