Запрос AJAX с formData выдаст мне ошибку HTTP 415 (неподдерживаемый тип носителя) - PullRequest
0 голосов
/ 06 июня 2018

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

0 голосов
/ 06 июня 2018

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

, изменить

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

до

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