微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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);
    }
);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐