无法在ajax中加载资源

时间:2018-02-14 19:55:48

标签: jquery ajax django

我正在尝试使用 ajax django models 访问一些字符串。我是ajax的新手,我不知道我哪里出错了。

这是 Jquery 代码: -

$(document).ready(function () {
    $("input.ssd").click(function () {

        var lsid = $(this).attr("id");
        lsid = Number(lsid);
        $.ajax({
            type: "POST",
            url: "/a_solution/",
            data: {
                l_sid: lsid,
            },
            success: console.log("success")
            datatype: 'html',
            error : console.log("oops! something went wrong"),

        });
    });
});

以下是urls.py中的 url 映射:

 url(r'^a_solution/$', views.a_detail, name = 'a_detail'),

PS : - jquery.min.js:2 POST http://127.0.0.1:8000/a_solution/ 403(禁止)         jquery.min.js:2 XHR加载失败:POST“http://127.0.0.1:8000/a_solution/

1 个答案:

答案 0 :(得分:3)

默认情况下,所有 POST 请求都受CSRF保护(跨站点请求伪造)。因此,您必须发送public void doStuff(String groupname) { groups.add(groupname) // groups would be a HashSet<string> joinGroup(groupname) } 以及Ajax请求数据。

通常我所做的是在模板中的某处呈现csrf标记(如果你有一个表单放在表单中,但由于它是一个Ajax请求,这个地方并不重要)。

csrfmiddlewaretoken

然后在您的jQuery代码中,您可以访问它。此外,在Ajax调用中,{% csrf_token %} success需要一个函数(使用error调用可能会导致错误,不确定):

console.log()