我的应用程序中有一个端点,它根据给定的查询字符串返回数据。查询字符串可以(并且经常必须)包含重复的键,例如/api/entities/related?filter1=val1&filter1=val2&filter2=val3
识别两个类型的过滤器filter1
。Flask 很好地处理了这个问题,例如在做 时request.args.to_dict
,我会得到{'filter1': ['val1', 'val2'], 'filter2': 'val3'}
.
我的问题是如何在从端点获取集合时使用 Backbone 实现相同的功能。目前我可能有
this.fetch({data: {'filter1': 'val1', 'filter1': 'val2', 'filter2': 'val3'}});
由于重复键将在 javascript 对象中相互覆盖,因此我的filter1
值最终将是val2
. 然而,当做
this.fetch({data: {'filter1': ['val1', 'val2'], 'filter2': 'val3'}});
url 最终是/api/entities/related?filter1%5B%5D=val1&filter1%5B%5D=val2
,它至少确实使用了两个相同的键,但显然不起作用。
这是一个编码问题还是我应该以不同的方式处理它?