jquery - $.post 到 django View 不传递数据

标签 jquery ajax django post django-templates

我在 jquery 中使用 $.post 将请求发送到不同的页面。

<body>
<form id="saveuserFeedback" class="form" action="{% url saveFeedback  %}" method="post"        class="ajax"> {% csrf_token %}
...
...
<input type="submit" class="btn" id="Like" value="Like"/>
<input type="submit" class="btn" id="Discuss" value="Dislike"/> 
...
</form>
<script type="text/javascript">
$(document).ready(function () {
    $("#Like").click(function (e) {
        e.preventDefault();
        alert('Like clicked');
        console.log('reached here');
        $.post("saveFeedback2/", {
            csrfmiddlewaretoken: document.getElementsByName('csrfmiddlewaretoken')[0].value,
            feedbackStatus: "Like",
            feedbackNoteID: "12345"
        });
    });
    $("#Dislike").click(function (e) {
        e.preventDefault();
        alert('Dislike clicked');
        console.log('reached here');
        $.post("saveFeedback2/", {
            csrfmiddlewaretoken: document.getElementsByName('csrfmiddlewaretoken')[0].value,
            feedbackStatus: "Dislike",
            feedbackNoteID: "12345"
        });
    });
});
</script>

但是在saveFeedback2中,数据好像看不到,只能看到传递的csrfmiddlewaretoken。

 def saveFeedback2(request):
        print request.POST

QueryDict: {u'csrfmiddlewaretoken': [u'18f0f434b876a3b742371c6b43222b4a']}>

以下内容在 urls.py 中

url(r'saveFeedback2/$', saveFeedback2 , name='saveFeedback2'),

任何帮助表示赞赏。 谢谢!

最佳答案

原因是,您没有为表单的提交执行 preventDefault 。您正在为 click 事件执行此操作(我认为这不是必需的。但无论如何..)。

将其添加到您的$(document).ready()

$('#saveuserFeedback').submit(function(e){
     e.preventDefault();
});

更简洁的方法可能是将 likedislike 作为单选按钮,然后在表单提交时执行 data = $('form') .serialize() 然后将其发送到 $.post

关于jquery - $.post 到 django View 不传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17350742/

相关文章:

python - 无法让 django-star-ratings 显示到模板

MySQL 拒绝在 Ubuntu 中使用 Django

jQuery simplemodal 禁用滚动

javascript - 如何使用 jQuery 将一个 html 文档引用到 div 中的另一个 html 文档?

javascript - Backbone : How to talk to backend without the use of model. 保存()?

javascript - 如何将 JavaScript 字符串下载为文件

javascript - 如何在 jQuery 中选择给定元素下的元素?

javascript - JQuery 不删除添加的元素

javascript - 如何在单击嵌套在循环中的按钮时弹出显示模式

python - Django 文件字段 : how to set default value (auto-create empty file)?