誰かが投稿のContentTypeをjson/applicationに指定する方法を知っていますか?私はそうだと思っていましたが、バックボーンはデフォルトでそれを行いましたが、プレーンテキスト(コメントを参照)が得られているということで判断すると、別の方法で指定する必要があります。Backbone.js投稿500エラー
私はBackbone.jsを使用していますが、TastyPie APIにPOSTしようとしていますが、これは読み込み専用ではなく、モデルを作成して.save()しようとすると500エラーが表示されます。 http://documentcloud.github.com/backbone/docs/backbone.html#section-124
Backbone.sync = function(method, model, options){
var type = methodMap[method];
var params = _.extend({
type: type,
dataType: 'json'
}, options);
if (!params.url){
params.url = getUrl(model) || urlError();
}
if (Backbone.emulateJSON){
params.contentType = 'application/json';
params.data = params.data ? {model: params.data} : {};
}
if (Backbone.emulateHTTP){
if(type === 'PUT' || type === 'DELETE'){
if (Backbone.emulateJSON) params.data._method = type;
params.type = 'POST';
params.beforeSend = function (xhr){
xhr.setRequestHeader('X-HTTP-Method-Override', type);
};
}
}
if (params.type !== 'GET' && ! Backbone.emulateJSON){
params.prorcessData = false;
}
return $.ajax(params);
};
$.fn.serializeObject = function()
{
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if (o[this.name] !== undefined) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
};
$(function() {
$('form').submit(function() {
var dict = $('form').serializeObject();
var new_task = new Backbone.Model({
date: toString(dict.date),
name: toString(dict.name),
priority: toString(dict.priority)});
console.log("new_task =" + new_task);
new_task.save();
console.log(dict);
return false;
});
});
});
を提出する権利、フォーム上にありますか?どのような500の応答を取得しますか?私は最近、tastypieとバックボーンを組み合わせたアプリを作った。あなたはそれをここでチェックすることができます:https://github.com/c4urself/ratebeer多分それはあなたにいくつかのアイデアを与えるでしょう。 – c4urself
: "text/plain"の形式にはデシリアライズの方法がありませんでした。シリアライザで '' formats''と '' content_types''を確認してください。 "、 – user784756
ポールの解答は正しいが、 TastypieはまだX-HTTP-Method-Overrideヘッダーをサポートしていません。オーバーライドされたメソッドで使用しているResourceクラスを追加するには、次のようにするか、直接拡張してください:https://gist.github.com/2161338 –