1. #1
    Sencha User
    Join Date
    Dec 2008
    Posts
    8
    Vote Rating
    0
    zjda is on a distinguished road

      0  

    Default Not able to PUT json array in Ext.ajax.request

    Not able to PUT json array in Ext.ajax.request


    Hi All,

    I try to send an array of json object to the server:

    Code:
                Ext.Ajax.request({
                    url: '../rest/admin/group/',
                    method: 'PUT', 
                    headers: {'Content-Type': 'application/json'},
                    params: {
                        sorts: Ext.JSON.encode([{"property":"name","direction":"ASC"}]) 
                    },
                    success: function(response) {
                        ...
                    }    
                });
    The server uses Spring MVC to handle the request:
    Code:
            binder.registerCustomEditor(Sort.class, new JsonPropertyEditor(Sort[].class));
    
    ...
    
        @RequestMapping(value = "/group", method = RequestMethod.PUT)
        public View removeUsers4Group(Model model, 
                @RequestBody Sort[] sorts) {
    ...
    }
    I get the 404 error (bad request) and the request never reaches the handler. However, if it is a request param, the object get parsed correctly:

    Code:
                @RequestParam(value = "sort", required = false) final Sort[] sorts, Model model) {
    I am using extjs 4.1.1a. Any help will be appreciated.

    Thanks,
    -ZJ

  2. #2
    Sencha - Senior Forum Manager mitchellsimoens's Avatar
    Join Date
    Mar 2007
    Location
    St. Louis, MO
    Posts
    34,120
    Vote Rating
    453
    mitchellsimoens has much to be proud of mitchellsimoens has much to be proud of mitchellsimoens has much to be proud of mitchellsimoens has much to be proud of mitchellsimoens has much to be proud of mitchellsimoens has much to be proud of mitchellsimoens has much to be proud of mitchellsimoens has much to be proud of mitchellsimoens has much to be proud of mitchellsimoens has much to be proud of

      0  

    Default


    Check out the network tab in browser dev tools. The params will be sent as form data
    Mitchell Simoens @SenchaMitch
    Sencha Inc, Senior Forum Manager
    ________________
    http://www.JSONPLint.com - Source to lint your JSONP!

    Check out my GitHub, lots of nice things for Ext JS 4 and Sencha Touch 2
    https://github.com/mitchellsimoens

    Think my support is good? Get more personalized support via a support subscription. https://www.sencha.com/store/

    Need more help with your app? Hire Sencha Services services@sencha.com

    Want to learn Sencha Touch 2? Check out Sencha Touch in Action that is almost in print!

    When posting code, please use BBCode's CODE tags.

  3. #3
    Sencha User
    Join Date
    Dec 2008
    Posts
    8
    Vote Rating
    0
    zjda is on a distinguished road

      0  

    Default


    It looks like that I have to use 'jsonData' instead of 'params' to make it work with Spring @RequestBody.

    Thank you very much for your reply.

    -ZJ