Django 已经更新到 1.3,事实上从 1.2.5 开始,它就扩展了该方案,将跨站请求伪造保护令牌传递给 XMLHttpRequests。 Django 人员提供了帮助jQuery 的一个例子 http://docs.djangoproject.com/en/dev/ref/contrib/csrf/#ajax将特定标头应用于每个 XHR。
原型(以及 Scriptaculous)必须遵守此方案,但我找不到一种方法来告诉原型添加 X-CSRFToken 标头。最好的方法是以在整个应用程序中应用它的方式执行一次(就像 jQuery)。
有没有办法做到这一点?
这是一个疯狂的猜测,但你可以尝试延伸 http://api.prototypejs.org/language/Function/prototype/wrap/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);
}
);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)