使用Axios发送POST请求时为何出现415状态码错误?
解决Axios POST请求返回415错误的方案
415状态码表示服务器不支持请求发送的媒体类型,通常是请求体格式与声明的Content-Type不匹配,或是请求体不是合法JSON格式导致的。结合你的代码,以下是具体解决步骤:
1. 修正参数对象定义
你代码中params的定义多了一层冗余括号,同时需处理contactnumber可能出现的NaN问题:
const params = { username: username, password: password, firstname: fname, middlename: mname, lastname: lname, address: address, contactnumber: contact ? parseInt(contact) : 0 // 避免contact为空时转为非法值 };
2. 优化Axios请求配置
确保请求头格式正确,同时增强错误日志可读性:
function newUser() { axios.post("http://localhost:8080/citizen/postCitizen", params, { headers: { "Content-Type": "application/json" } }) .then(response => { console.log(response.data); }) .catch(error => { console.error("请求失败详情:", error.response?.data || error.message); }); console.log(params); }
3. 额外排查点
- 确认
username、password等所有变量都已正确赋值,避免undefined或null导致JSON序列化异常 - 检查服务器端接口配置:比如Spring Boot项目中,接口方法是否添加
@RequestBody注解,且项目依赖Jackson JSON解析包 - 用Postman等工具直接发送相同JSON数据测试接口,确认接口本身是否能正常接收请求
- 如果服务器实际期望
multipart/form-data格式,需改用FormData构造参数,并修改请求头的Content-Type
内容的提问来源于stack exchange,提问作者Jikk
相关产品推荐
相关产品推荐

