Javascript Django ajax视图csrf失败,错误为500

Javascript Django ajax视图csrf失败,错误为500,javascript,jquery,ajax,django,Javascript,Jquery,Ajax,Django,我有一个叫Devot的Django观点。它由@login_所需的装饰程序保护,在正常使用中可以完全正常工作 我认为开始研究ajax和javascript以使系统更具动态性是一个值得的想法,因此我在第一次尝试时实现了如下内容: $(function() { $(".vote").click(vote); }); var vote = function() { pk = $(this).attr('pk'); $.ajax({

我有一个叫Devot的Django观点。它由@login_所需的装饰程序保护,在正常使用中可以完全正常工作

我认为开始研究ajax和javascript以使系统更具动态性是一个值得的想法,因此我在第一次尝试时实现了如下内容:

$(function() {
        $(".vote").click(vote);
});

var vote = function() {
            pk = $(this).attr('pk');

            $.ajax({
                type: "POST",
                data: "pk=" + $(this).attr("pk"),
                url: "/link/" + $(this).attr("pk") + "/vote/",
                });
        };
它成功地发布到正确的URL。当我用firebug查看输出时,我发现我得到了500个错误。我已经在我的页面中加入了从中截取的内容,我原以为这可以解决CSRF问题,但它似乎没有这样做

想知道我是否遗漏了一些明显的东西


谢谢

我解决这个问题的方法是整理上面的内容:

var vote = function() {
        pk = $(this).attr('pk');

        data = {
            'pk': pk
        };

        $.ajax({
            type: "POST",
            data: data,
            url: "/link/" + pk + "/vote/",
            });
    };
因此,我检查了视图,发现它没有从ajax传递给它的DataDict中提取正确的值,这就是500错误的来源


由于CSRF问题,我以前遇到过一个403,对于那些想知道如何解决这个问题的人,我只是使用上面问题中提到的脚本,保存在我的应用程序的/static/js/目录中的一个“CSRF.js”文件中,然后将其作为脚本之一包括在内,这就解决了这个问题。

如果您将Firebug中显示的错误和回溯包括在内,会很有帮助。我发现了我现在犯的错误,愚蠢地漏掉了Firebug输出中的一行,抱歉!你可以看看