0

Edite:根据评论中的建议改进了代码,但仍然没有运气

更新:感谢 ThiefMaster 在听从您的建议后,我在视图函数中发现了一个错误,但现在修复它后,我进入了 django 调试

禁止 (403)

CSRF 验证失败。请求中止。帮助 失败原因:CSRF 令牌丢失或不正确。


我尝试使用 jquery ajax 将 json 数据发送到 django

这是我的js代码

$("#send").click(function () {
    var events = $('#calendar').fullCalendar('clientEvents');
    console.log(events);
    var filter = [];
    filter[0] = 'start';
    filter[1] = 'end';
    filter[2] = 'title';
    events = JSON.stringify(events, filter, '\t');
    console.log(events);
    $.ajax({
        type: "POST",
        data: {events: events},
        url: <my_url>,
    });
});

在 chrome devtool 上一切正常,直到最后一个 $.ajax()

它抛出此错误加载资源失败:服务器响应状态为 403(OK)

如果有人能弄清楚我做错了什么,请继续

提前致谢

4

2 回答 2

0

data: "events"应该是data: events。您的服务器可能不喜欢非 json 有效负载。

您还想添加contentType: 'application/json',因为您想发布 json,而不是表单编码值。如果您确实希望在服务器端使用表单编码值,请使用data: {events: events}获取events包含 JSON 字符串的 POST 数据字段。

于 2012-03-31T22:41:00.633 回答
0

我找到了有关 csrf 的 Forbidden 403 解决方案的另一部分

在这个 Django 文档页面中

https://docs.djangoproject.com/en/dev/ref/contrib/csrf/#ajax

于 2012-04-01T11:04:49.107 回答