我有以下代码来获取我的集合的数据,但是指定了应该来自服务器的颜色:
fruits = new FruitsCollection();
fruits.fetch({
data: {color: ['red', 'green']}
});
这就是我的期望:
http://localhost:8000/api/fruits/?color=red&color=green
这就是我得到的:
http://localhost:8000/api/fruits/?color[]=red&color[]=green
正如您所看到的,由于某些未知原因Backbone.js将方括号添加到URL参数,而不是color=green
我有color[]=green
我在服务器端使用django-rest-framework,我知道我可以在那里进行硬编码修复,但我更喜欢知道逻辑原因,因为它正在发生,我如何从我的javascript中解决它。 / p>
答案 0 :(得分:17)
Backbone在ajax请求下使用jQuery.ajax,因此您需要使用traditional: true
选项来使用“传统”parameter serialization:
fruits = new FruitsCollection();
fruits.fetch({
traditional: true,
data: {color: ['red', 'green']}
});