gpt4 book ai didi

使用 Backbone.js 发布到 Yii PHP 框架

转载 作者:行者123 更新时间:2023-12-04 16:12:04 24 4
gpt4 key购买 nike

我正在尝试使用 Backbone.js 模型保存到我的 Yii Web 应用程序,但即使模型是序列化形式并且我使用 Backbone.sync 设置 header ,我也会收到“无法验证 CSRF token ”响应。

模型(表单中包含 CSRF token 并将其作为“YII_CSRF_TOKEN”属性发送):

var v = new ModelName ($('.formclass').serializeJSON()); 

JSON 序列化器:
 //form.serializeJSON
(function( $ ){
$.fn.serializeJSON=function() {
var json = {};
jQuery.map($(this).serializeArray(), function(n, i){
json[n['name']] = n['value'];
});
return json;
};
})( jQuery );

主干.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);
};

我也尝试将标题设置为“X_CSRF_TOKEN”,但无济于事。

最佳答案

YII_CSRF_TOKEN 不是标题,它只是一个表单值。
根据 this我们的请求必须包含行

  • 一个CSRF cookie,它已经由第一个非XHR页面加载设置
  • 名为 的表单数据值YII_CSRF_TOKEN
  • 关于使用 Backbone.js 发布到 Yii PHP 框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10951443/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com