相关疑难解决方法(0)

axios发送表单数据的请求

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发送表单数据.

ajaxform reactjs react-redux axios axios-cookiejar-support

132
推荐指数
11
解决办法
23万
查看次数

Spring启动控制器 - 将Multipart和JSON上传到DTO

我想将表单中的文件上传到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)

javascript java spring-boot

23
推荐指数
3
解决办法
3万
查看次数