10

我有以下代码来获取我的集合的数据,但指定应该来自服务器的颜色:

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 中解决它。

4

1 回答 1

19

Backbone 在后台使用jQuery.ajax来处理 ajax 请求,因此您需要使用traditional: true选项来使用“传统”参数序列化

fruits = new FruitsCollection();
fruits.fetch({
    traditional: true,
    data: {color: ['red', 'green']}
});
于 2013-08-28T15:41:35.543 回答