使用 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)
我想要 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)