[英]ajax is not working with django
我正在創建一個在帖子中添加評論的表單,它沒有ajax就可以工作,因為ajax將表單數據發送為None。
ajax:
<script>
$(function() {
$("#myform").on("submit", function(e) {
e.preventDefault();
$.ajax({
url: $(this).attr("action"),
type: 'POST',
data: $(this).serialize(),
beforeSend: function() {
$("#message").html("sending...");
},
success: function(data) {
confirm('worked')
}
});
});
});
</script>
表格:
<form action="{% url 'newcom' Post.id%}" id="myform">
<div class="input-group">
<input type="text" name="comment_body" class="form-control" placeholder="Leave a comment">
<div class="input-group-btn">
<button class="btn btn-success" id="message" type="submit">
<i class="glyphicon glyphicon-send"></i>
</button>
</div>
</div>
<br>
</form>
風景:
def new_comment(request, post_id):
body = request.GET.get('comment_body')
post = Post.objects.get(id=post_id)
Nat.objects.create(fromUser=request.user.username, toUser=post.created_by, content="commented on your post")
Comment.objects.create(post=post, created_by=request.user,
created_at=timezone.localtime(timezone.now()), comment=body)
return HttpResponseRedirect(request.META.get('HTTP_REFERER'))
<form>
元素正在使用GET
發送請求,並且您的服務器端代碼需要GET
值。 但是,您的AJAX請求正在使用POST
。 您需要將AJAX請求類型從更改為
type: 'POST'
至
type: 'GET'
或者您可以完全忽略該屬性,因為jQuery的默認設置是使用GET
。
另外,您可以保持AJAX方法不變,並修改Django代碼以接收POST變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.