Tôi đang cố gắng sử dụng các mô hình Backbone.js để lưu vào ứng dụng web Yii của mình nhưng tôi nhận được phản hồi "Mã thông báo CSRF không thể xác minh" ngay cả khi mô hình được sắp xếp theo thứ tự và tôi sử dụng Backbone.sync để đặt tiêu đề.Đăng lên khung công tác PHP của Yii bằng Backbone.js
Mô hình này (hình thức có CSRF token trong nó và gửi nó như một thuộc tính "YII_CSRF_TOKEN"):
var v = new ModelName ($('.formclass').serializeJSON());
JSON serializer:
//form.serializeJSON
(function($){
$.fn.serializeJSON=function() {
var json = {};
jQuery.map($(this).serializeArray(), function(n, i){
json[n['name']] = n['value'];
});
return json;
};
})(jQuery);
Các 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);
};
Tôi cũng đã thử đặt tiêu đề là 'X_CSRF_TOKEN', không có kết quả.
Liệu nó hoạt động tốt với những người không XHR POST-yêu cầu? – theotheo