首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Nodejs客户端post请求体中使用重复键构造表单数据

在Nodejs客户端post请求体中使用重复键构造表单数据
EN

Stack Overflow用户
提问于 2019-10-10 10:23:58
回答 1查看 865关注 0票数 0

我试图提出一个由表单数据组成的帖子请求。但是API规范说表单数据应该如下所示:

names[]=公司名称1&names[]=公司名称2

我试过了

代码语言:javascript
复制
    form: {'names[]': "google" ,'names[]': "kraft",  'fields[]': "Country", 
        'fields[]':"ISIN"}

但是服务器只接收第一个names[]fields[]。第二个被剪掉了。

服务器: Post数据:{“名称”=>“卡夫”、“字段”“=>”ISIN“}

然后,我尝试添加数组作为值:

代码语言:javascript
复制
form: {'names[]': ["google", "kraft"], 'fields[]': ["Country","ISIN"] }

服务器: Post数据:{“=>{”0“=>”=>“google”、“1”=>“卡夫”}、“字段”“=>{”=>“Country”、"1"=>"ISIN"}}

查看服务器请求,我发现它接受以下格式的主体:

BODY: names[]=google&names[]=kraft&fields[]=ISIN&fields[]=Country

但是我不能在我的节点-客户端构建这样的表单。

我正在使用这个库:https://www.npmjs.com/package/request

*编辑*

这首歌真的很棒:form: "names[]=google&names[]=kraft&fields[]=Country&fields[]=ISIN"

现在的问题是如何使用https://github.com/form-data/form-data来形成这个字符串。

我试过没有附加不起作用。

EN

回答 1

Stack Overflow用户

发布于 2019-10-10 10:25:28

建议键是唯一的,并且在命名中不要有括号。在您的例子中,names[]和fields[]重复它们自己

代码语言:javascript
复制
const form = {
    form: {
        names: ['google', 'kraft'],
        fields: ['Country', 'ISIN']
    }
};

request.post('http://yourwebsite.com', form);

编辑

代码语言:javascript
复制
names[]=google&names[]=kraft&fields[]=ISIN&fields[]=Country 

可能有效,但取决于框架/语言,将只考虑一个条目(第一项或最后一项)。所以它相当于

代码语言:javascript
复制
names[]=google&fields[]=ISIN // considering first are chosen

正如你所看到的

服务器: Post数据:{“名称”=>“卡夫”、“字段”“=>”ISIN“}

括号被过滤掉了,所以这也是同样的情况。

代码语言:javascript
复制
names=google&fields=ISIN // considering first are chosen
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58320745

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档