Запрос 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)