Estoy tratando de usar Backbone.js modelos para guardar en mi aplicación web Yii pero obtengo una respuesta "El token CSRF no se pudo verificar" incluso cuando el modelo está serializado formulario y yo uso Backbone.sync para establecer un encabezado.Contabilizando framework Yii PHP usando Backbone.js
El modelo (la forma tiene el token CSRF en él y la envía como un atributo "YII_CSRF_TOKEN"):
var v = new ModelName ($('.formclass').serializeJSON());
JSON serializador:
//form.serializeJSON
(function($){
$.fn.serializeJSON=function() {
var json = {};
jQuery.map($(this).serializeArray(), function(n, i){
json[n['name']] = n['value'];
});
return json;
};
})(jQuery);
El Backbone.sync:
Backbone.old_sync = Backbone.sync;
Backbone.sync = function(method, model, options) {
var new_options = _.extend({
beforeSend: function(xhr) {
console.log('backbone sync');
var token = model.get('X_CSRF_TOKEN');
console.log('token ='+token)
if (token) xhr.setRequestHeader('YII_CSRF_TOKEN', token);
}
}, options)
Backbone.old_sync(method, model, new_options);
};
También he intentado configurar el encabezado como 'X_CSRF_TOKEN', en vano.
¿funciona bien con no xhr POST-petición? – theotheo