亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

POST JSON在415個不受支持的媒體類型Spring3MVC中失敗

POST JSON在415個不受支持的媒體類型Spring3MVC中失敗

POST JSON在415個不受支持的媒體類型Spring3MVC中失敗我正在嘗試向servlet發送一個POST請求。通過jQuery以這種方式發送請求:var productCategory = new Object();productCategory.idProductCategory = 1; productCategory.description = "Descrizione2";newCategory(productCategory);其中新類別是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個不支持的媒體類型。Springmvc控制器有簽名    @RequestMapping(value = "/ajax/newproductcategory", method = RequestMethod.POST)     public @ResponseBodyInteger newProductCategory(HttpServletRequest request,         @RequestBody ProductCategory productCategory)幾天前,它起了作用,現在卻不起作用了。如果需要的話,我會展示更多的代碼。謝謝
查看完整描述

3 回答

?
Helenr

TA貢獻1780條經驗 獲得超4個贊

我以前在Spring@ResponseBody中遇到過這種情況,這是因為請求中沒有發送Accept頭。使用jQuery設置AccepHeader可能會很痛苦,但這對我來說是有效的。來源

$.postJSON = function(url, data, callback) {
    return jQuery.ajax({
    headers: { 
        'Accept': 'application/json',
        'Content-Type': 'application/json' 
    },
    'type': 'POST',
    'url': url,
    'data': JSON.stringify(data),
    'dataType': 'json',
    'success': callback    });};

@RequestBody使用ContentType標頭來確定從請求中從客戶端發送的數據的格式。@ResponseBody使用Accept標頭來確定將數據發送回響應中的客戶端的格式。這就是為什么你需要兩個標題。


查看完整回答
反對 回復 2019-07-05
?
小唯快跑啊

TA貢獻1863條經驗 獲得超2個贊

我也遇到了類似的問題,但發現問題在于,我忽略了為DTO提供一個默認構造函數,該構造函數帶有@RequestBody注解。


查看完整回答
反對 回復 2019-07-05
  • 3 回答
  • 0 關注
  • 854 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號