axios POST请求正在访问控制器上的url,但是将空值设置为我的POJO类,当我浏览chrome中的开发人员工具时,有效负载包含数据.我究竟做错了什么?
Axios POST请求:
var body = {
userName: 'Fred',
userEmail: 'Flintstone@gmail.com'
}
axios({
method: 'post',
url: '/addUser',
data: body
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
Run Code Online (Sandbox Code Playgroud)
浏览器响应:
如果我将标题设置为:
headers:{
Content-Type:'multipart/form-data'
}
Run Code Online (Sandbox Code Playgroud)
请求抛出错误
发布multipart/form-data时出错.Content-Type标头缺少边界
如果我在邮递员中提出相同的请求,它的工作正常并将值设置为我的POJO类.
任何人都可以解释如何设置边界或如何使用axios发送表单数据.
我想将表单中的文件上传到Spring Boot API端点.
UI是用React编写的:
export function createExpense(formData) {
return dispatch => {
axios.post(ENDPOINT,
formData,
headers: {
'Authorization': //...,
'Content-Type': 'application/json'
}
).then(({data}) => {
//...
})
.catch(({response}) => {
//...
});
};
}
_onSubmit = values => {
let formData = new FormData();
formData.append('title', values.title);
formData.append('description', values.description);
formData.append('amount', values.amount);
formData.append('image', values.image[0]);
this.props.createExpense(formData);
}
Run Code Online (Sandbox Code Playgroud)
这是java端代码:
@RequestMapping(path = "/{groupId}", method = RequestMethod.POST)
public ExpenseSnippetGetDto create(@RequestBody ExpensePostDto expenseDto, @PathVariable long groupId, Principal principal, BindingResult result) throws IOException {
//..
}
Run Code Online (Sandbox Code Playgroud)
但是我在java方面得到了这个例外:
org.springframework.web.HttpMediaTypeNotSupportedException: Content …Run Code Online (Sandbox Code Playgroud)