【问题标题】:Passing data with ajax to django with post method使用 ajax 将数据传递给 django 使用 post 方法
【发布时间】:2019-05-08 13:38:58
【问题描述】:

正如我在一个教程中看到的那样,我正在尝试使用 POST 方法通过 ajax 将数据发送到 django 视图。

我编写的代码如下(myURL 是我调用 testview 的 URL):

      $(document).on('submit','#form',function(e){
        e.preventDefault();

        $.ajax({
          type:'POST',
          url:'/myURL/',
          data:{
            HELLO: "I'm inside ajax data"
          },
          contentType: "application/json",
          datatype: 'json',
          sucess:function(){
            alert("Ajax pass data correctly");

          }
        })
      });
    </script>

在 django 中,我会按以下方式称呼 HELLO。 test.html 是我有 html 表单的地方


    if request.method == 'POST':

        takeHELLOfromajaxpost = request.POST['HELLO']

        return render(request,'test.html',{'dataTakenfromAjax':takeHELLOfromajaxpost})



    return render(request,'test.html',{}) 

然后我会在同一个 HTML {{ dataTakenfromAjax }} 中进行模板标记,以验证我是否正在获取该数据,但没有任何反应!我什至没有错误。

【问题讨论】:

  • 看起来像是一个错字:sucess 应该是 success。如果这不能解决问题,请检查网络标签

标签: python ajax django


【解决方案1】:

首先,您没有在请求中发送csrfmiddlewaretoken

其次,你在success 参数中有错字。

第三,你可能期望它彻底改变 html?比你应该在成功响应时添加$("body").html()。这样你的变量就会出现在页面上。

test.html:

{{ dataTakenfromAjax }}

<form action="" id="form">
    {% csrf_token %}
    <button type="submit">Submit</button>
</form>
<script
        src="https://code.jquery.com/jquery-3.4.1.js"
        integrity="sha256-WpOohJOqMqqyKL9FccASB9O0KwACQJpFTUBLTYOVvVU="
        crossorigin="anonymous"></script>
<script>
    $(document).on('submit', '#form', function (e) {
        e.preventDefault();

        $.ajax({
            type: 'POST',
            url: '/myURL/',
            data: {
                csrfmiddlewaretoken: $("[name=csrfmiddlewaretoken]").val(),
                HELLO: "I'm inside ajax data"
            },
            success: function (data) {
                $("body").html(data);
            }
        })
    });
</script>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-27
    • 2018-08-04
    • 1970-01-01
    • 2020-07-27
    • 1970-01-01
    • 1970-01-01
    • 2016-02-09
    • 1970-01-01
    相关资源
    最近更新 更多