AJAX Post请求不向Django View发送值

问题描述 投票:2回答:1

我正在尝试使用AJAX将一些数据从前端传递到我的站点的后端。这是我的django视图中的post请求视图:

def post(self, request):
    id_ = request.GET.get('teacherID', None)
    print(id_)
    args = {}   
    return JsonResponse(args)

这是我在javascript中的功能。我知道正确的值正在传递,因为console.log(teacher_id)打印正确的值。

function send(teacher_id){
    console.log(teacher_id)
    var url = window.location.pathname;
      $.ajax({
        method: "POST",
        url: url,
        data: {
            'teacherID': teacher_id,
            },
        dataType: 'json',
        success: function (data) {
            //location.href = data.url;//<--Redirect on success
        }
        });
}

运行代码并运行我视图中的print语句时,无论teacher_id是什么,都会打印None

代码有什么问题?

javascript jquery python ajax django
1个回答
2
投票

在您的Django视图中,使用GET.get()检索数据,而AJAX请求使用method: "POST"发送它。

无法以与POST数据相同的方式检索GET数据,因此您应该更改数据的发送方式(通过将AJAX调用中的method更改为GET)或使用相关的POST方法读取它。

如果您怀疑使用哪种方法,可以访问this Stack Overflow question

© www.soinside.com 2019 - 2024. All rights reserved.