JSON格式发送数据时,jQuery Form Data中括号出现问题

我有对象

    var dataformdata={"key1":"value1","key2":"value2"};

然后我用相同的key(key3)添加更多值

    dataformdata.key3 = [];

dataformdata.key3.push("value3");

dataformdata.key3.push("value4");

我在每个坡度上都进行上述操作。除了通过浏览器控制台中的jQuery

ajax函数发送dataformdata对象时,所有其他方法都有效,我看到键中有括号…

$.ajax({ type: "POST", url: "/", data: dataformdata,

这是我在浏览器控制台中看到的:

key1:value1

key2:value2

key3%5B%5D:value3

key3%5B%5D:value4

它应该工作,因为在jQuery.ajax()文档中它说

对象必须是键/值对。如果value是一个Array,则jQuery根据传统设置的值使用相同的键序列化多个值

但是,为什么键中要包含括号(%5B%5D)?

回答:

jQuery

1.4中引入了带有键括号的表示法,以处理多维数组或包含对象(或其他数组)本身的数组。这有助于解串器区分数组和原始值。例如,如果键中没有括号,则这两个变量将以相同的方式序列化:

var v1 = { "k1":"v1", "k2":"v2", "k3":["v3"] };

var v1 = { "k1":"v1", "k2":"v2", "k3":"v3" };

使用方括号符号,它们被编码为

k1=v2&k2=v2&k3[]=v3

k1=v2&k2=v2&k3=v3

分别。

以上是 JSON格式发送数据时,jQuery Form Data中括号出现问题 的全部内容, 来源链接: utcz.com/qa/418149.html

回到顶部