2010年1月18日月曜日

Param serialization of JQuery 1.4.0

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
with jQuery 1.4.0

shinano.tonic-water.com - - [18/Jan/2010 17:21:47] "GET /?callback=jsonp1263802906929&_=1263802907163&move%5B%5D=4%2F2+1%2Foff(2)+&gnubgid=ZwAAwGwAAAAAAA%3AcIkkAAAAAAAA HTTP/1.1" 500 59


with jQuery 1.3.2

shinano.tonic-water.com - - [18/Jan/2010 17:23:24] "GET /?callback=jsonp1263803004677&_=1263803004910&move=4%2F2+1%2Foff(2)+&gnubgid=ZwAAwGwAAAAAAA%3AcIkkAAAAAAAA HTTP/1.1" 200 80

I need to figure out differences.
%5B%5 is [], so it comes from some where in js, and it looks like array related.

ajax with

data : {'move' : m, gnubgid : alt},

generates "move%5B%5=" so, I changed it to

data : {'move' : m[0], gnubgid : alt},

and it gives the right result.

m comes from

var m = mv.match(moveRegexp);

so I guess that 1.4.0 has changed over match object handling on serialization.


Param serialization now happens in the PHP/Rails style by default. You can use jQuery.ajaxSettings.traditional = true; to use traditional parameter serialization.

Source: Backwards-Incompatible Changes

PHP/Rails means "recursive". If match object is an iterable of strings, then it is reasonable.

0 件のコメント: