当前位置: 首页 > 面试题库 >

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

晏修诚
2023-03-14
问题内容

我有对象

    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发送到elasticSearch。我尝试使用Postman和SOAPUI数据是 我回来了以下错误 但是当我发布单个JSON数组即 然后工作正常。我是ElasticSearch的新手,所以不确定出什么问题。 问题答案: 首先尝试使用大括号,然后为数组命名。尝试一下,看看是否可行。 例如: 可能有效,因为它包含在对象内部。 更好 在尝试时,我发现它可以将数组隐式转换为J

  • 我正在从弹性搜索中读取数据。当我在kibana上可视化日期格式时,它显示日期8月5,2020 @ 23:00:00.000 = 我用pyspark将索引的内容收集到一个数据帧中,如果有任何解决方案,我可以在scala中完成 'from elasticsearch import Elasticsearch from pandasticsearch import Select es = Elastic

  • 我已通过axios在阵列上发送数据(mySplitDays[splitDayIndex]=splitDay),但我有一个错误。。。 [Vue warn]:数据()中的错误:“引用错误:未定义mySplitDays” ReferenceError:未定义mySplitDays [Vue warn]:呈现错误:“TypeError:无法读取未定义的属性'length'” TypeError:无法读取P

  • 我正在尝试从发送(私人)直接消息A@jabber.de给用户B@jabber.de使用camel xmpp组件。但它总是说“吉德畸形”。使用此文档:https://camel.apache.org/components/latest/xmpp-component.html 使用camel 2.24.2和java 8,但在java 11上存在相同的问题。我还尝试在消息头中设置“from”和“to”。

  • 我试图通过AsyncHttpClient的post方法以json格式向服务器发送数据,服务器接受此格式 这是我的密码 当我记录实体时,结果如下所示 请帮帮我?

  • JSON 数据格式 JSON 是 JavaScript Object Notation 的简称,是一种轻量的数据表示方法。json格式采用key:value的方式记录数据,非常直观,比XML简洁,因而大受欢迎 介绍json格式前,先让我们看看XML格式。显然,XML 得到了相当多的关注(正面和负面的评价都有),已经在 Ajax 应用程序中广泛使用: <request> <firstName>