jQuery ajax - param() ·½·¨

ʵÀý

ÐòÁл¯Ò»¸ö key/value ¶ÔÏó£º

var params = { width:1900, height:1200 };
var str = jQuery.param(params);
$("#results").text(str);

½á¹û:

width=1680&height=1050

TIY ʵÀý

Êä³öÐòÁл¯¶ÔÏóµÄ½á¹û£º

$("button").click(function(){
  $("div").text($.param(personObj));
});

Ç××ÔÊÔÒ»ÊÔ

¶¨ÒåºÍÓ÷¨

param() ·½·¨´´½¨Êý×é»ò¶ÔÏóµÄÐòÁл¯±íʾ¡£

¸ÃÐòÁл¯Öµ¿ÉÔÚ½øÐÐ AJAX ÇëÇóʱÔÚ URL ²éѯ×Ö·û´®ÖÐʹÓá£

Óï·¨

jQuery.param(object,traditional)
²ÎÊý ÃèÊö
object Òª½øÐÐÐòÁл¯µÄÊý×é»ò¶ÔÏó¡£
traditional ¹æ¶¨ÊÇ·ñʹÓô«Í³µÄ·½Ê½Ç³²ã½øÐÐÐòÁл¯£¨²ÎÊýÐòÁл¯£©¡£

Ïêϸ˵Ã÷

param() ·½·¨ÓÃÓÚÔÚÄÚ²¿½«ÔªËØÖµ×ª»»ÎªÐòÁл¯µÄ×Ö·û´®±íʾ¡£Çë²ÎÔÄ .serialize() Á˽â¸ü¶àÐÅÏ¢¡£

¶ÔÓÚ jQuery 1.3£¬Èç¹û´«µÝµÄ²ÎÊýÊÇÒ»¸öº¯Êý£¬ÄÇôÓà .param() »áµÃµ½Õâ¸öº¯ÊýµÄ·µ»ØÖµ£¬¶ø²»ÊǰÑÕâ¸öº¯Êý×÷Ϊһ¸ö×Ö·û´®À´·µ»Ø¡£

¶ÔÓÚ jQuery 1.4£¬.param() ·½·¨½«»áͨ¹ýÉî¶ÈµÝ¹éµÄ·½Ê½ÐòÁл¯¶ÔÏó£¬ÒÔ±ã·ûºÏÏÖ´ú»¯½Å±¾ÓïÑÔµÄÐèÇ󣬱ÈÈç PHP¡¢Ruby on Rails µÈ¡£Äã¿ÉÒÔͨ¹ýÉèÖà jQuery.ajaxSettings.traditional = true; À´È«¾ÖµØ½ûÓÃÕâ¸ö¹¦ÄÜ¡£

Èç¹û±»´«µÝµÄ¶ÔÏóÔÚÊý×éÖУ¬Ôò±ØÐëÊÇÒÔ .serializeArray() µÄ·µ»ØÖµÎª¸ñʽµÄ¶ÔÏóÊý×飺

[{name:"first",value:"Rick"},
{name:"last",value:"Astley"},
{name:"job",value:"Rock Star"}]

×¢Ò⣺ÒòΪÓÐЩ¿ò¼ÜÔÚ½âÎöÐòÁл¯Êý×ÖµÄʱºòÄÜÁ¦ÓÐÏÞ£¬ËùÒÔµ±´«µÝһЩº¬ÓжÔÏó»òǶÌ×Êý×éµÄÊý×é×÷Ϊ²ÎÊýʱ£¬ÇëÎñ±ØÐ¡ÐÄ£¡

ÔÚ jQuery 1.4 ÖУ¬HTML5 µÄ input ÔªËØÒ²»á±»ÐòÁл¯¡£

¸ü¶àʵÀý

ÎÒÃÇ¿ÉÒÔÈçÏÂÏÔʾ¶ÔÏóµÄ²éѯ×Ö·û´®±íʾÒÔ¼° URI ±àÂë°æ±¾£º

var myObject = {
  a: {
    one: 1, 
    two: 2, 
    three: 3
  }, 
  b: [1,2,3]
};
var recursiveEncoded = $.param(myObject);
var recursiveDecoded = decodeURIComponent($.param(myObject));

alert(recursiveEncoded);
alert(recursiveDecoded);

recursiveEncoded ºÍ recursiveDecoded µÄÖµÊä³öÈçÏ£º

a%5Bone%5D=1&a%5Btwo%5D=2&a%5Bthree%5D=3&b%5B%5D=1&b%5B%5D=2&b%5B%5D=3
a[one]=1&a[two]=2&a[three]=3&b[]=1&b[]=2&b[]=3

¿ÉÒÔ½« traditional ²ÎÊýÉèÖÃΪ true£¬À´Ä£Äâ jQuery 1.4 ֮ǰ°æ±¾ÖÐ $.param() µÄÐÐΪ£º

var myObject = {
  a: {
    one: 1, 
    two: 2, 
    three: 3
  }, 
  b: [1,2,3]
};
var shallowEncoded = $.param(myObject, true);
var shallowDecoded = decodeURIComponent(shallowEncoded);

alert(shallowEncoded);
alert(shallowDecoded);

recursiveEncoded ºÍ recursiveDecoded µÄÖµÊä³öÈçÏ£º

a=%5Bobject+Object%5D&b=1&b=2&b=3
a=[object+Object]&b=1&b=2&b=3
VUE