使用 formData 请求 AJAX 给我一个 415 HTTP 错误(不支持的媒体类型)

Request AJAX with formData give me a 415 HTTP Error (Unsupported media type)

我想要 post 一个表单数据,其中 value/files 可以是 null/empty。 我尝试修改每个参数,但是当我解析 415 时,出现 405 错误。

这是我的控制器函数

@RequestMapping(value = "/cart/post", method = RequestMethod.POST)
    public @ResponseBody String addToCart(@RequestBody 
ConfigurationForm configurationForm, BindingResult bindingResult) 
throws CMSItemNotFoundException{

这是我的AJAX请求

$('#popin_overlay_configuration').on('submit', '#configure-product- 
form', function (e) {
    e.preventDefault();
    var productCode = configuredCode;

    var formData = new FormData();

    // Code where i fill my formdata

    $.ajax({
        url: "cart/post",
        type: 'POST',
         data: formData,
         cache: false,
         processData: false,
         contentType: false,
        success: function(data) {
            $('#popin_overlay_configuration').hide();
        }
    });
 })

这是我的配置表单

public class ConfigurationForm
{
private String date;
private String lieuDePrestation;
private String pointDeContact;
private String commentaire;
private String transport;
private List<MultipartFile> PJFacultative;
private String referenceS;
private String referenceL;
private MultipartFile PJObligatoire;

//all the getters and setters are set
}

在你的方法中删除@ResponseBody,因为@ResponseBody意味着你传递的参数必须符合指定的格式,而在你的ajax中,参数数据可能不符合格式

改变

   public @ResponseBody String addToCart(@RequestBody ConfigurationForm 
       configurationForm, BindingResult bindingResult)

   public @ResponseBody String addToCart(ConfigurationForm configurationForm,
          BindingResult bindingResult)