ajax – POST JSON失败,415不支持的媒体类型,Spring 3 mvc
发布时间:2020-12-16 03:26:03 所属栏目:百科 来源:网络整理
导读:我试图发送一个POST请求到一个servlet。请求通过jQuery以这种方式发送: var productCategory = new Object();productCategory.idProductCategory = 1;productCategory.description = "Descrizione2";newCategory(productCategory); 其中newCategory是 funct
我试图发送一个POST请求到一个servlet。请求通过jQuery以这种方式发送:
var productCategory = new Object(); productCategory.idProductCategory = 1; productCategory.description = "Descrizione2"; newCategory(productCategory); 其中newCategory是 function newCategory(productCategory) { $.postJSON("ajax/newproductcategory",productCategory,function( idProductCategory) { console.debug("Inserted: " + idProductCategory); }); } 和postJSON是 $.postJSON = function(url,data,callback) { return jQuery.ajax({ 'type': 'POST','url': url,'contentType': 'application/json','data': JSON.stringify(data),'dataType': 'json','success': callback }); }; 使用firebug我看到JSON正确发送: {"idProductCategory":1,"description":"Descrizione2"} 但我得到415不支持的媒体类型。 Spring mvc控制器有签名 @RequestMapping(value = "/ajax/newproductcategory",method = RequestMethod.POST) public @ResponseBody Integer newProductCategory(HttpServletRequest request,@RequestBody ProductCategory productCategory) 几天前它工作,现在不是。如果需要,我会显示更多的代码。
我之前发生过与Spring @ResponseBody,这是因为没有接受头与请求一起发送。接受头可能是一个痛苦与jQuery设置,但这对我工作
source
$.postJSON = function(url,callback) { return jQuery.ajax({ headers: { 'Accept': 'application/json','Content-Type': 'application/json' },'type': 'POST','success': callback }); }; @RequestBody使用Content-Type头来确定请求中客户端发送的数据是什么格式。 accept头由@ResponseBody用于确定将数据发送回响应中的客户端的格式。这就是为什么你需要两个标题。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |