You're right: it's POST not GET:
if (params = Object.toQueryString(params)) {
if (this.method == 'get')
this.url += (this.url.include('?') ? '&' : '?') + params;
else if (/Konqueror|Safari|KHTML/.test(navigator.userAgent))
params += '&_=';
}
But it's not empty POST bodies as it's only added if params != "".
I don't know which version of Safari it is because I cannot find any
documentation about it and it's a real pain to install an old version
of safari.
The extra parameter is there to catch garbage that Safari would add to
the end of a POST body. This way the garbage is in the extra parameter
not in the important parameters.
By accident I stored the extra parameter in the database of my webapp.
I have 20000 of them in one table. None of them have a value other
than the empty string(*). That's why I know that the workaround is no
longer needed (or at least not that badly).
Can we add a check for version 2.x of Safari for the workaround?
Should this be documented?
Groeten,
Arjen Nienhuis
(*) Well I loaded and stored the data multiple times and prototypes
adds the underscore even when it's already there so I actually store
things like {'foo': 2, 'bar': 5, '_': ["", "", "", "", ""]}. Yay!