2

我在获取收藏时遇到了一些麻烦。我正在使用控制台的网络检查器来查看是否可以找出问题所在,我看到的唯一内容是请求有效负载的格式。

.fetch()这种格式发送请求有效负载时:

query=this+is+my+query

这会从我的服务器返回 400 Bad Request 状态。我已经使用以下方法进行了测试:

$.ajax({
contentType: 'application/json',
async : false,
type:'POST',
url: '/search',
data: JSON.stringify({"query":"this is my query"}),
dataType: 'json',
success: function(data) {
    alert('yup');
},
error: function(data) {
    alert('nope');
}});

它按预期返回我的数据。在这种情况下,请求有效负载采用以下格式:

{"query":"enterprise search is gonna rock","scope":null}

我试过用我的 fetch 传递标题:

my_results.fetch({data:{"query":"this is my query"}, type: 'POST', dataType: 'json', contentType: 'application/json'});

这是我的模型和集合的样子:

EnterpriseSearch.Result = Backbone.Model.extend(); 
EnterpriseSearch.Results = Backbone.Collection.extend({     
  model: EnterpriseSearch.Result,
  url: "/search"
});

任何帮助,将不胜感激。

4

1 回答 1

0

尝试data: JSON.stringify({"query":"this is my query"})在您的 fetch 选项中使用,就像您在使用$.ajax. jQuery 将默认application/x-www-form-urlencoded用于表单数据。

于 2012-12-03T16:05:32.157 回答