如何在my django views函数中从Ajax POST获取数据?
为什么我还有: [2013年11月30日14:47:52]“POST/folder/HTTP/1.1”403 2294如何在my django views函数中从Ajax POST获取数据?,django,Django,为什么我还有: [2013年11月30日14:47:52]“POST/folder/HTTP/1.1”403 2294 在日志中?您始终可以在请求中访问它。POST变量 文档: 在js代码中,您应该修复的另一件事是数据参数。 jQuery文档声明如下:对象必须是键/值对 关于更新的问题 您收到403,因为您没有发送csrf令牌。 如果在中间件类中启用了'django.middleware.csrf.CsrfViewMiddleware',则需要将{%csrf\u token%}放入表单模板中,然
在日志中?您始终可以在
请求中访问它。POST
变量文档:
在js代码中,您应该修复的另一件事是
数据
参数。jQuery文档声明如下:
对象必须是键/值对
关于更新的问题
您收到403,因为您没有发送csrf
令牌。
如果在中间件类中启用了'django.middleware.csrf.CsrfViewMiddleware'
,则需要将{%csrf\u token%}
放入表单模板中,然后通过js将其与数据一起发送
如下所示:data:{'name':name'csrfmiddlewaretoken':$('input[name=“csrfmiddlewaretoken”])。val()
有没有简单的方法来解决这个问题?在我的情况下,如何发送csrf
令牌?这不是标准form@netman97您可以使用djagno模板变量{{csrf_-token}}数据:{name:name,csrfmiddlewaretoken:{{csrf_-token}}传递csrf-token,
$(document).ready(function(){
$('.addFolder input').keydown(function(e) {
if (e.keyCode == 13) {
name = $(this).val();
$.ajax({
type: "POST",
url: "/folder/",
data: name,
success: function(result) {
$('.folders ul li:first-child').after('<li class="bg-color-2 ui-droppable" data-folderid="2">'+name+' <span>0</span></li>');
$('.addFolder input').val('');
}
});
}
});
<div class="addFolder">
<span>+</span>
<input type="text" placeholder="Folder's name">
</div>
def folder(request):
user = request.user
if request.method == "POST" and request.is_ajax():
name = request.POST['name']
f = Folder.objects.create(name=name, user=user)
status = "Good"
return HttpResponse(status)
else:
status= "Bad"
return HttpResponse(status)