prototype.jsのAjax.requestで&_=が付加される件

JSON文字列をキーなしで送りたいのに、POSTしたデータに_=とか余分なデータが付いてしまうので、サーバサイドが正しくJSONをパースできない現象があった。

var testAjax = new Ajax.Request(
    url,
    {
        method: 'post',
        parameters: jsonstr,
        asynchronous: true,
        onComplete: showResponse
});

prototype.jsのソースを見ると一目瞭然で、わざわざ付加している模様。

1.4.0

var parameters = this.options.parameters || '';
if (parameters.length > 0) parameters += '&_=';

1.5.0

params = Hash.toQueryString(params);
if (params && /Konqueror|Safari|KHTML/.test(navigator.userAgent)) params += '&_='

なるほど?Safariとかで必要なワケか。

とりあえず、QooxdooのRPCクラスと互換性のあるものをprototype.jsで、デバッグのために使いたかっただけなので、さっくり該当行削除して終了。
このパラメータがないとSafariではどうなるんだろう…自分で調べてみたりする気は全然起きないのですが。


新しく会社作りました!

コメントをどうぞ