在我目前的春季项目中,我在我的控制器中有这个方法,我通过方法POST从客户端发送请求:
@RequestMapping(value="cadastra", method=RequestMethod.POST)
@ResponseBody
public String[] cadastra(@ModelAttribute("object") E object, BindingResult result, @RequestParam(value="file", required=false) MultipartFile file, @RequestParam(value="icone", required=false) MultipartFile icone) {
String response[] = {"not", "not", "not"};
if(serv.cadastra(object)) {
response[0] = "yes";
}
if(serv.upload_picture(object, file, "picture")) {
response[1] = "yes";
}
if(serv.upload_picture(object, icone, "icone")) {
response[2] = "yes";
}
return response;
}
在我看来,请求是通过这个jquery代码发送的:
$('form.form').ajaxForm(function(data) {
$("#"+data[0]).css("display", "block");
$("#image-"+data[1]).css("display", "block");
$("#icone-"+data[2]).css("display", "block");
$('form.form').each(function(){
this.reset();
});
});
但是,尽管表单中的数据正在发送并存储在服务器中,但由于HTTP 406的错误,我没有得到任何响应。任何人都可以告诉我应该如何修改此代码以接受数组作为对我的响应请求?
答案 0 :(得分:0)
406不可接受:请求标识的资源只能根据请求中发送的接受标头生成内容特征不可接受的响应实体。
基本上,您的后端服务是说它返回的响应类型未在客户端请求中的Accept
类型HTTP标头中指定,或者您可能没有指定Accept
标头所有
我无法帮助您使用特定代码,因为我不熟悉您正在使用的语言,但原则上您需要找出服务返回的响应内容类型(例如& #34; application / json")并在您的请求的Accept
标题中提供此内容类型,以便它知道以您想要的格式返回响应。
请参阅此帖子:" Pass accepts header parameter to jquery ajax",了解如何使用jQuery为您的服务提供Accept
标头。