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
    Gainesville, FL
    Posts
    37,330
    Vote Rating
    846
    mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute mitchellsimoens has a reputation beyond repute

      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
    ________________
    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 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

Thread Participants: 1