2

コレクションの取得に問題があります。コンソールのネットワークインスペクターを使用して、何が問題なのかを把握できるかどうかを確認しています。表示されるのは、リクエストペイロードの形式だけです。

リクエストを行う場合、.fetch()ペイロードは次の形式で送信されます。

query=this+is+my+query

これにより、サーバーから400BadRequestステータスが返されます。私は以下を使用してテストしました:

$.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}

フェッチでヘッダーを渡してみました:

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"})を使用するときと同じように、フェッチ オプションで使用してみてください$.ajax。jQuery はデフォルトapplication/x-www-form-urlencodedでフォーム データ用になります。

于 2012-12-03T16:05:32.157 に答える