首页 > 解决方案 > 如何在视图 Django 中接收 AJAX POST 数据?

问题描述

所以我有一个名为 Print Label 的按钮,单击它时应将一些数据发送到视图,然后我的视图应在 html 页面中显示该数据。到目前为止,我似乎已经能够保存数据,因为我可以使用 JS 的 alert 方法看到它。但是,当我使用 AJAX 发布这些数据时,似乎数据没有通过,因为我的视图无法识别 POST 调用(我得到一个 404 页面)。

浏览网址:

    path('label/', plabel, name="label.html"),

点击功能保存数据:

    $("#table").on('click','.btn-outline-primary',function(){
        // get the current row
        var currentRow=$(this).closest("tr"); 
        
        var col1=currentRow.find("td:eq(0)").html(); // get current row 1st table cell TD value
        var col2=currentRow.find("td:eq(1)").html(); // get current row 2nd table cell TD value
        var col3=currentRow.find("td:eq(2)").html(); // get current row 3rd table cell  TD value
        var col4=currentRow.find("td:eq(3)").html();
        var col5=currentRow.find("td:eq(4)").html();
        var col6=currentRow.find("td:eq(5)").html();
        var col7=currentRow.find("td:eq(6)").html();
        var col8=currentRow.find("td:eq(7)").html();
        var col9=currentRow.find("td:eq(8)").html();
        var col10=currentRow.find("td:eq(9)").html();
        var col11=currentRow.find("td:eq(10)").html();
        var col12=currentRow.find("td:eq(11)").html();
        var col13=currentRow.find("td:eq(12)").html();
        var col14=currentRow.find("td:eq(13)").html();
        
        var mydata= [col1, col2, col3, col4, col5, col6, col7, col8, col9, col10, col11, col12, col13, col14];

AJAX 调用:

    $.ajax({
            url: "/label/",
            type: "POST",
            data:{
                csrfmiddlewaretoken: '{{ csrf_token }}',
                mydata: mydata},
            });
    alert(mydata); //this is showing my data has been saved

警报图片

查看代码:

    def plabel(request):
   
        if request.method == "POST":
            printlabeldata = request.POST.get('mydata' , '')
            return render(request, "label.html", {'pdata': printlabeldata})
        else:
            raise Http404

任何帮助,将不胜感激!

标签: djangoajaxpostviewget

解决方案


推荐阅读