編集1:
あなたのコメントによると、サーバーは適切な応答を送信していますが、バックボーンはまだエラー関数を呼び出しています。エラー コールバックの先頭に次の行を追加します。
error: function (model, resp){
console.log('error arguments: ', arguments);
console.log("error retrieving model");
}
最初の行は、オブジェクトの配列を出力する必要があります。配列の最初の要素は jqXhr オブジェクトである必要があり、2 番目の要素はエラーの文字列表現である必要があります。最初のオブジェクトをクリックすると、開発ツールでそのプロパティを調べることができます。オブジェクトのプロパティについては、 http://api.jquery.com/jQuery.ajax/#jqXHR を参照してください。
その情報を使用して、jQuery がサーバーからエラーを受信しているかどうかを確認できます。
サーバー側のエラーがない場合は、responseText
プロパティの値を確認してください。サーバーから返された文字列データを保持します。$.ajax
そのデータを JSON に解析しようとします。ほとんどの場合、解析でエラーがスローされ、代わりにエラー ハンドラーが発生しています。
応答テキストをコピーして、http://jsonlint.com/に貼り付けます。サーバーから送信された応答が有効な JSON であることを確認します。console.log
ステートメントの出力とオブジェクトのresponseText
プロパティで質問を更新してください。jqxhr
-xxx-
モデルを独立して使用しているようです。ドキュメントに従って、http://backbonejs.org/#Model-url、
"/[urlRoot]/id" の形式の URL を生成します。
つまり、 にリクエストを送信していshopData.json/id
ます。また、IDを指定していません。
console.log(myShop.url())
の前にa を挿入しmyShop.fetch()
ます。出力内容をお知らせください。また、Firebug または Chrome Dev Tools に表示される ajax リクエストの詳細を共有することもできます。リクエスト URL とサーバーから返されるレスポンスの 2 つに関心があります。( http://getfirebug.com/network )