我允许用户通过 ajax 删除帖子。帖子有一个 bool 字段 live_until_removed。当设置为 false 时,帖子消失。
当点击删除时,我得到一个 403,引用:
xhr.send( ( s.hasContent && s.data ) || null );
如何让它顺利运行?为什么会出现这个错误?
js:
$('#removeForm').submit(function() { // catch the form's submit event
$.ajax({
data: $(this).serialize(),
type: $(this).attr('method'),
url: $(this).attr('action'),
success: function(response) {
$('.close-post').html(response); // update the DIV
console.log(response);
},
error: function(response){
console.log(response);
}
});
return false;
});
模板:
<div class="close-post">
{% if not post.live_until_removed %}
<form class="" id="removeForm" method="POST" action="">
<button type="submit" class="btn">Remove</button>
</form>
{% else %}
<button class="btn">Removed</button>
{% endif %}
</div>
views.py:
def post(request, id):
...
if request.is_ajax():
try:
post = Post.objects.get(id=id)
post.live_until_removed = False
post.save()
response = simplejson.dumps({"status": "Removed"})
except:
pass
最佳答案
您可能错过了在您的请求中发送 CSRF token 。看这里; Django-Ajax
关于python - 指向 403 Forbidden 的 Django Ajax 表单提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16223834/