Spring和ExtJS“错误请求”与POST方法

Spring and ExtJS “Bad Request” with POST method

本文关键字:POST 方法 错误请求 请求 ExtJS 错误 Spring      更新时间:2023-09-26

我试图用POST从Ext JS发送参数到Spring应用程序。这里是my Controller:

@RequestMapping(value = "/unloadCatalog", method = RequestMethod.POST)
public void unloadMappingCatalog(@RequestParam(required = true) String jsonString,
                                 HttpServletRequest request, HttpServletResponse response)
{

这里是我用来发送这些参数的Ext JS片段:

var unloadData = Ext.encode(listObjects);
Ext.Ajax.request({
    url:'content/unloadCatalog',
    method: 'POST',
    params:{
        jsonString: unloadData
    },
    success: function(response, opts){
        // do something
    }
});
但是如果我发送json data unloadData作为body data
Ext.Ajax.request({
    url:'content/unloadCatalog',
    method: 'POST',
    jsonData: unloadData,
    success: function(response, opts){
        // do something
    }
});

,然后像这样改变我的控制器:

@RequestMapping(value = "/unloadCatalog", method = RequestMethod.POST)
public void unloadMappingCatalog(@RequestBody String jsonString,
                               HttpServletRequest request, HttpServletResponse response)
{

一切正常。为什么第一种情况下不起作用?

原因是默认情况下,如果您POST您的数据,数据将被封装在请求体中,并且您得到内容类型:application/x-www-form-urlencoded