Django已经更新到1.3,实际上从1.2.5开始,它已经扩展了该方案,将一个跨站点请求伪造保护令牌传递给XMLHttpRequests。 Django人员有助于an example for jQuery为每个XHR应用特定的标题。
Prototype(以及Scriptaculous)必须遵守这个方案,但我找不到一种方法来告诉原型添加X-CSRFToken标头。最好的方法是在应用程序中应用它一次(如jQuery)。
有办法吗?
答案 0 :(得分:7)
这是一个疯狂的猜测,但您可以尝试extending基础AJAX类...
Ajax.Base.prototype.initialize = Ajax.Base.prototype.initialize.wrap(
function (callOriginal, options) {
var headers = options.requestHeaders || {};
headers["X-CSRFToken"] = getCookie("csrftoken");
options.requestHeaders = headers;
return callOriginal(options);
}
);