Javascript 获取POST<;我的url>;500(确定),当使用$.ajaxpost将json发送到django视图时
伊迪特:根据评论中的建议改进了代码,但仍然没有运气 更新:谢谢ThiefMaster在遵循您的建议后,我在视图函数中发现了一个bug,但在修复它之后,现在我进入了django调试 禁止(403) CSRF验证失败。请求被中止。给予帮助理由 失败: CSRF令牌丢失或不正确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
我试图使用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令牌丢失或不正确。