Hi TJ, I've spent this morning walking through the code and have determined 
that prototype indeed calls the toQueryString() function when the original 
parameter is passed as type string.  For reference I'm here in the prototype 
code:  


Ajax.Base = Class.create({
    initialize: function(options) {
        this.options = {
            method: 'post',
            asynchronous: true,
            contentType: 'application/x-www-form-urlencoded',
            encoding: 'UTF-8',
            parameters: '',
            evalJSON: true,
            evalJS: true
        };
        Object.extend(this.options, options || {});

        this.options.method = this.options.method.toLowerCase();

        if (Object.isString(this.options.parameters))
            this.options.parameters = 
this.options.parameters.toQueryParams();
        else if (Object.isHash(this.options.parameters))
            this.options.parameters = this.options.parameters.toObject();
    }
});

So, since I need encoded arguments in my html I think it is best practice 
(in my case) to build my parameters as parameter object and not a string 
object (since the additional toQueryParams() method will be invoked on the 
string).  
It would be nice if prototype could recognize that the string is properly 
encoded, since I am passing in a properly encoded string and don't require 
the additional toQueryParams() method on my string; this is a "leave it 
alone" case on the string.

Is this a possibility for future release of prototype?  Is this doable?

Karl..

 

-- 
You received this message because you are subscribed to the Google Groups 
"Prototype & script.aculo.us" group.
To post to this group, send email to prototype-scriptacul...@googlegroups.com.
To unsubscribe from this group, send email to 
prototype-scriptaculous+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/prototype-scriptaculous?hl=en.

Reply via email to