1. #1
    Sencha User
    Join Date
    Dec 2009
    Posts
    364
    Vote Rating
    2
    raj_plays is on a distinguished road

      0  

    Default cannot set json content-type in store

    cannot set json content-type in store


    Hi,
    I am using Ext 3.3.1 with .Net web service(asmx) as server.
    When I transfer data in xml format, it works great but when i move to json, it doesnt work.
    The problem is the Content-Type for both request and response is always set to "text/xml".
    I cannot get it to be "application/json".
    Can someone please give a code snippet showing how to set content type in a JsonStore config.
    The code below does not work..
    Code:
    var proxy = new Ext.data.HttpProxy({
        method: 'POST',
        url: 'WebServiceTest.asmx/GetJson',
        headers: {
            'Content-Type': 'application/json;charset=utf-8'
        }
    });
    
    
    var store = new Ext.data.JsonStore({
        proxy: proxy,
        root: 'd',
        idProperty: 'agencyId',
        fields: ['agencyId', 'name']
    });
    If i use the following JQuery code, it works..
    Code:
    $.ajax({
                  type: "POST",
                  contentType: "application/json; charset=utf-8",
                  url: "WebServiceTest.asmx/GetJson",
                  dataType: "json",
                  success: function(msg) {
                  var obj = jQuery.parseJSON(msg.d);
                    alert("Total: " + obj.Total);
                  }
              });
    What will be the JsonStore equivalent for the above?

  2. #2
    Sencha - Senior Forum Manager mitchellsimoens's Avatar
    Join Date
    Mar 2007
    Location
    Gainesville, FL
    Posts
    37,347
    Vote Rating
    847
    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


    With your code:

    Code:
    var proxy = new Ext.data.HttpProxy({
        method  : 'POST',
        url     : 'data/json.json',
        headers : {
            'Content-Type' : 'application/json;charset=utf-8'
        }
    });
    
    var store = new Ext.data.JsonStore({
        proxy      : proxy,
        root       : 'd',
        idProperty : 'agencyId',
        fields     : ['agencyId', 'name']
    });
    
    store.load();
    running it in chrome I see the Content-Type header as is specified:

    Screen Shot 2013-04-22 at 9.19.17 AM.png
    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.

Thread Participants: 1