Запрос AJAX с formData выдаст мне ошибку HTTP 415 (неподдерживаемый тип носителя)

Я хочу опубликовать форму данных, где значение / файлы соммы могут быть нулевыми / пустыми. Я пытался изменить все параметры, но когда я решаю 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();
        }
    });
 })

Вот мой ConfigurationForm

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
}

1 ответ

Решение

Удалить @ResponseBody внутри вашего метода, так как @ResponseBody означает, что передаваемый вами параметр должен соответствовать указанному формату, а в вашем ajax данные параметра могут не соответствовать формату

менять

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

в

   public @ResponseBody String addToCart(ConfigurationForm configurationForm,
          BindingResult bindingResult)
Другие вопросы по тегам