1.是因为数据格式不对,通俗来说,后端需要的是JSON字符串(formData类型),不是对象(Request Payload格式),而axios默认的post方法是以对象形式发送,比如 { id:1, lastid: 3 }
变成JSON对象(Request Payload) 方法一:【用 URLSearchParams 传递参数】let param = new URLSearchParams()param.append('username', 'admin') param.append('pwd', 'admin') axios({ method: 'post', url: '/api/lockServer/search', data: param })需要注意的是: URLSearchParams 不支持所有的浏览器,但是总体的支持情况还是 OK 的,所以优先推荐这种简单直接的解决方案
方法二:【还需要额外的操作,(我们要将参数转换为query参数)】 引入 qs ,这个库是 axios 里面包含的,不需要再下载了。import Qs from 'qs' let data = { "username": "admin", "pwd": "admin" } axios({ method: 'post', url: '/api/lockServer/search', data: Qs.stringify(data) })