ajax – 基于针对CSRF的XHR请求保护prototype.js

Django已经更新到1.3,实际上从1.2.5开始,它已经扩展了该方案,以将Cross Site Request Forgery保护令牌传递给 XMLHttpRequests. Django人员帮助提供 an example for jQuery以将特定标头应用于每个XHR.

原型(以及Scriptaculous)必须遵守这个方案,但我找不到一种方法来告诉原型添加X-CSRFToken标头.最好的方法是在应用程序中应用它(如jQuery).

有没有办法做到这一点?

这是一个疯狂的猜测,但你可以尝试 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);
    }
);
相关文章
相关标签/搜索