Store Save adds URL String Parameters even if the HttpMethod is POST.

  1. #1

    Store Save adds URL String Parameters even if the HttpMethod is POST.

    I have been using the Store.Save method for a while but lately we have been getting a lot of exceptions because of the size of the data sent while saving a grid store. The weird thing is that we are using POST to save such data, so the URL parameters should not be added, everything should go in the POST body, but it is not.

    We are using version 1.2.

    This is the exception we are getting:

    HTTP Error 404.15 - Not Found
    The request filtering module is configured to deny a request where the query string is too long.
    That exception is just the secondary effects the problem is that the data is getting encoded in the URL, which should not happen.

    This is the Request being sent:

    • Request URL:
      http://localhost:11742/NodeService.a...%3A-1%7D%5D%7D
    • Request Method:
      POST
    • Status Code:
      404 Not Found
    • Request Headersview source
      • Accept:
        */*
      • Accept-Charset:
        ISO-8859-1,utf-8;q=0.7,*;q=0.3
      • Accept-Encoding:
        gzip,deflate,sdch
      • Accept-Language:
        en-US,en;q=0.8
      • Connection:
        keep-alive
      • Content-Length:
        3157
      • Content-Type:
        application/json
      • Cookie:
      • Host:
        localhost:11742
      • Origin:
        http://localhost:11742
      • Referer:
        http://localhost:11742/Main.aspx
      • User-Agent:
        Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.46 Safari/536.5
      • X-Requested-With:
        XMLHttpRequest

    • Query String Parametersview URL encoded
      • data:
        {"Deleted":[{"CollectionName":"News","Id":"4fbb119fb371950950e 0abc3","date":"x","time":"x","guide":"x","title":" x","content":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","id":-1}]}

    • Request Payload
      • {"data":"{\"Deleted\":[{\"CollectionName\":\"News\",\"Id\":\"4fbb119fb371 950950e0abc3\",\"date\":\"x\",\"time\":\"x\",\"gui de\":\"x\",\"title\":\"x\",\"content\":\"xxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxx\",\"id\":-1}]}"}

    • Response Headersview source
      • Cache-Control:
        private
      • Content-Length:
        8472
      • Content-Type:
        text/html; charset=utf-8
      • Date:
        Tue, 22 May 2012 04:16:09 GMT
      • X-Content-Type-Options:
        nosniff
      • X-Frame-Options:
        SAMEORIGIN
      • X-SourceFiles:
        =?UTF-8?B?RDpcVXNlcnNcYWVzcGlub3phXEhvbWVcUHJveXNcU3RydW N0dW1caUtub2RlXGlLbm9kZUNvbW1hbmRDZW50ZXJcaUtub2Rl LkNvbW1hbmRDZW50ZXJcTm9kZVNlcnZpY2UuYXNteFxTYXZlRG 9jdW1lbnRz?=
      • X-XSS-Protection:
        1; mode=block


    This is the piece of code where I found the parameters being assigned:

    Ext.extend(Ext.net.HttpWriteProxy, Ext.data.HttpProxy, {
        handleSaveResponseAsXml : false,
        
        save : function (params, reader, callback, scope, arg) {
            if (this.fireEvent("beforesave", this, params) !== false) {
                var o = {
                    params   : params || {},
                    request  : {
                        callback : callback,
                        scope    : scope,
                        arg      : arg
                    },
                    reader   : reader,
                    scope    : this,
                    callback : this.saveResponse
                };
                
                if (this.conn.json) {
                    o.jsonData = params;
                }
                
                if (this.useAjax) {
                    Ext.applyIf(o, this.conn);
                    o.url = this.conn.url;
                    
                    if (this.activeRequest) {
                        Ext.Ajax.abort(this.activeRequest);
                    }
    
    
                    this.activeRequest = Ext.Ajax.request(o);
                } else {
                    this.conn.request(o);
                }
            } else {
                callback.call(scope || this, null, arg, false);
            }
        },
    The params variable contains the data I am sending, and it is correctly assigning it to the o.jsonData = params, the problem is that the o.params still has the params as well, so it is sending it along the URL. If, while debugging, I clear the o.params to empty string, the request goes fine.

    I am wondering if I am doing something wrong here; but I don't think the Data should go into the URL at all since I am using POST.

    This is my Store Definition:

                JsonReader reader = new JsonReader {
                            Root = "d.Data",
                            TotalProperty = "d.TotalRecords"
                        };
    
    
                reader.Fields.Add(new RecordField("CollectionName"));
    
    
                foreach(string fieldName in this._fields) {
                    reader.Fields.Add(new RecordField(fieldName));
                }
    
    
                Store store = new Store {
                    AutoLoad = true,                
                    Reader = {
                        reader
                    },
                    Proxy = {
                        new HttpProxy {
                            Json = true,
                            Method = HttpMethod.POST,
                            Url = "DocumentStorageGridHandler.ashx"
                        }
                    },
                    BaseParams = {
                        new Parameter {
                            Name = "collectionName",
                            Value = this._collectionName
                        },
                        new Parameter {
                            Name = "start",
                            Value = ""
                        },
                        new Parameter {
                            Name = "pageSize",
                            Value = this._pageSize.ToString()
                        }
                    },
                    UpdateProxy = {
                        new HttpWriteProxy {
                            Json = true,
                            HandleSaveResponseAsXml = true,
                            Method = HttpMethod.POST,
                            Url = "NodeService.asmx/SaveDocuments",
                        }
                    }
                };
    I'm sorry if the post is very long, but I am trying to give as much information as I can.

    Thanks in advance,
    Alex.
  2. #2
    Hey guys i'm having this exact same issue:

    I know that is an old post, but i see that it has no response.

    Can you help me out here?
  3. #3
    Hi @aespinoza,

    Thank you for a detailed bug report. Pity we didn't answer in time.

    Here we suggested a fix.
    http://forums.ext.net/showthread.php...l=1#post120315

Similar Threads

  1. [CLOSED] Ext.Net.Window and HTTPMethod.POST
    By wisdomchuck in forum 1.x Legacy Premium Help
    Replies: 3
    Last Post: Jun 23, 2011, 7:08 PM
  2. Store with List of String
    By jigpatel06 in forum 1.x Help
    Replies: 0
    Last Post: Apr 06, 2011, 3:05 PM
  3. Store does not retain value after post back
    By pooja in forum 1.x Help
    Replies: 1
    Last Post: Oct 15, 2010, 6:14 PM
  4. [CLOSED] 411 error with ASMX POST service call without parameters
    By tdracz in forum 1.x Legacy Premium Help
    Replies: 2
    Last Post: Aug 03, 2009, 3:59 PM
  5. Post Store baseParams as JSON
    By skynet in forum 1.x Legacy Premium Help
    Replies: 1
    Last Post: May 08, 2009, 11:52 PM

Posting Permissions