Javascript 获取POST<;我的url>;500(确定),当使用$.ajaxpost将json发送到django视图时

Javascript 获取POST<;我的url>;500(确定),当使用$.ajaxpost将json发送到django视图时,javascript,jquery,ajax,django,django-csrf,Javascript,Jquery,Ajax,Django,Django Csrf,伊迪特:根据评论中的建议改进了代码,但仍然没有运气 更新:谢谢ThiefMaster在遵循您的建议后,我在视图函数中发现了一个bug,但在修复它之后,现在我进入了django调试 禁止(403) CSRF验证失败。请求被中止。给予帮助理由 失败: CSRF令牌丢失或不正确 我试图使用jQueryAjax将json数据发送到django 这是我的js代码 $("#send").click(function () { var events = $('#calendar').fullCale

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

更新:谢谢ThiefMaster在遵循您的建议后,我在视图函数中发现了一个bug,但在修复它之后,现在我进入了django调试

禁止(403)

CSRF验证失败。请求被中止。给予帮助理由 失败: CSRF令牌丢失或不正确


我试图使用jQueryAjax将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>,
    });
});
$(“#发送”)。单击(函数(){
var events=$('日历').fullCalendar('客户事件');
console.log(事件);
var过滤器=[];
过滤器[0]=“开始”;
过滤器[1]=“结束”;
过滤器[2]=“标题”;
events=JSON.stringify(事件,过滤器,'\t');
console.log(事件);
$.ajax({
类型:“POST”,
数据:{events:events},
网址:,
});
});
在ChromeDevTool上,直到最后一个$.ajax()版本,一切都正常

它抛出了这个错误 加载资源失败:服务器响应状态为403(确定)

如果有人能找出我做错了什么,请继续

提前感谢

数据:“事件”
应该是
数据:事件
。您的服务器可能不喜欢非json负载


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

我找到了解决方案中关于csrf的禁止403的另一部分

在本页Django文档中


这是服务器的错误。检查您的服务器日志或其他内容。仅供参考,创建数组的更好方法是
[]
而不是
new array()
(与对象相同,它是
{}
而不是
new Object()
),您还应该使用
var
将变量设置为本地变量;代码看起来不需要
事件
才是全局的。@Pointy我正在使用localserverdevelopment@ThiefMaster编辑了代码,但没有幸运编辑了代码,仍然不起作用,值得一提的是,我正在本地ubuntu machinethanks上开发。为了获得帮助,您关于检查django输出的建议解决了部分问题,我在视图中发现了导致500页的错误,但现在我发现gitteng 403错误,此msg CSRF验证失败。请求被中止。给出的失败原因:CSRF令牌丢失或不正确。