2013-04-16 60 views
0

在ItemController:錯誤狀態:'錯誤的請求'。錯誤代碼:400

@RequestMapping(value="/delete.htm", produces="application/json", method=RequestMethod.POST) 
public @ResponseBody Item deleteItem(
      @RequestParam String itemName) { 

    Item existingItem = new Item(); 
    existingItem.setItemName(itemName); 
    itemService.deleteItem(existingItem); 
    return existingItem; 
} 

在ItemDao默認地將Impl:

@Override 
public void deleteItem(Item item) { 
    // TODO Auto-generated method stub 
    sessionFactory.getCurrentSession().delete(item); 
} 

上項目ServiceImpl:

@Transactional 
public void deleteItem(Item item) { 
    // TODO Auto-generated method stub 
    itemDao.deleteItem(item); 
} 

jQuery的網格我使用刪除功能:

function deleteRow(obj, args) { 
    // Get the currently selected row 
    var row = $('#grid').jqGrid('getGridParam','selrow'); 

    // A pop-up dialog will appear to confirm the selected action 
    if (row != null) { 
     $('#grid').jqGrid('delGridRow', row, { 
      url: 'delete.htm', 
      recreateForm: true, 
      beforeShowForm: function (form) { 
       //Change title 
       $(".delmsg").replaceWith('<span style="white-space: pre;">' + 
            'Delete selected record?' + '</span>'); 
       //hide arrows 
       $('#pData').hide(); 
       $('#nData').hide(); 
      }, 
      reloadAfterSubmit: true, 
      closeAfterDelete: true, 
      serializeDelData: function (postdata) { 
       var rowdata = $('#grid').getRowData(postdata.id); 
       // append postdata with any information 
       return { 
        id: postdata.id, 
        oper: postdata.oper, 
        username: rowdata.username 
       }; 
      }, 
      afterSubmit: function (response, postdata) { 
       var result = eval('(' + response.responseText + ')'); 
       var errors = ""; 

       if (result.success == false) { 
        for (var i = 0; i < result.message.length; i++) { 
         errors += result.message[i] + "<br/>"; 
        } 
       } else { 
        $('#msgbox').text('Entry has been deleted successfully'); 
        $('#msgbox').dialog({ 
         title: 'Success', 
         modal: true, 
         buttons: { 
          "Ok": function() { 
           $(this).dialog("close"); 
          } 
         } 
        }); 
       } 
       // only used for adding new records 
       var newId = null; 

       return [result.success, errors, newId]; 
      } 
     }); 
    } else { 
     $('#msgbox').text('You must select a record first!'); 
     $('#msgbox').dialog({ 
      title: 'Error', 
      modal: true, 
      buttons: { 
       "Ok": function() { 
        $(this).dialog("close"); 
       } 
      } 
     }); 
    } 
} 

我收到以下錯誤:錯誤狀態:'錯誤的請求'。錯誤代碼:400 刪除選定的記錄? 我在控制器或jq網格出現錯誤?請建議

回答

-1

HTTP-Response Code 400指出您的請求存在問題。只需檢查對您的web服務的調用是否正確(路徑,參數等)。

此外,你可以看看你的服務器日誌文件,以解釋你在客戶端做錯了什麼。 Spring-mvc將響應代碼400映射到一些例外(看看here)。通過分析異常情況,您可以瞭解您的請求出了什麼問題。

+0

其nothign做witht他服務,即DBE竟被一個500錯誤。 – NimChimpsky

+0

我並不是說錯誤本身就在服務器端。我知道壞請求是客戶端的錯誤。我想說的是,錯誤是由服務器給出的,通過分析他的日誌文件,他可以發現他在客戶端做了什麼錯誤(例如,如果他試圖刪除一個不存在的實體)。 – benjiman

+0

如果他試圖刪除一個不存在的實體,他將不會得到400錯誤。 – NimChimpsky

0

That means你沒有正確地從你的ajax jquery調用(?)映射你的控制器。

我不熟悉的jqGrid但檢查你正在做一個,而且請求參數是否正確定義。

(您使用的邏輯和命名約定是蟎BTW混亂。)

相關問題