为了账号安全,请及时绑定邮箱和手机立即绑定

Ajax 在 Django 视图中返回空字符串

Ajax 在 Django 视图中返回空字符串

跃然一笑 2021-06-29 22:08:25
我正在通过 Django 开发一个 Web 应用程序,我想从我的 javascript 获取信息到 Django 的视图,以便访问数据库。正如这篇文章所示,我正在使用 ajax 调用。我通过 onclick 事件调用 html 中的 js:sortedTracks.html     ...    <form action="{% url 'modelReco:sortVideo' video.id %}">        <input type="submit" value="Validate" onclick="ajaxPost()" />    </form>    ...点击检测.js//defined herevar tracksSelected = [];//function that fill tracksSelectedfunction tagTrack(track_num){  if(tracksSelected.includes(track_num)){    var index = tracksSelected.indexOf(track_num);    tracksSelected.splice(index, 1);  }else{      tracksSelected.push(track_num);  }};//ajax functionfunction ajaxPost(){$.ajax({    method: 'POST',    url: '/modelReco/sortedTracks',    data: {'tracksSelected': tracksSelected},    success: function (data) {         //this gets called when server returns an OK response         alert("it worked! ");    },    error: function (data) {         alert("it didnt work");    }});};所以我要传输的信息tracksSelected是一个像 int 的数组[21,150,80]视图.pydef sortedTracks(request):if request.is_ajax():    #do something    print(request)    request_data = request.POST    print(request_data)    return HttpResponse("OK")ajax 帖子运行良好,但我得到的答案只是一个空的查询字典,如下所示:<QueryDict: {}> 如果我打印请求,我会得到:<WSGIRequest: GET '/modelReco/sortedTracks/?tracksSelected%5B%5D=25&tracksSelected%5B%5D=27&tracksSelected%5B%5D=29'>我也尝试更改为,request_data=request.GET但我得到了一个奇怪的结果,其中数据现在在tracksSelected[]
查看完整描述

2 回答

?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

根据我的访问,ajax请求中发送的数据可以直接访问。例如:


def sortedTracks(request):

    if request.method == 'POST':

        usersV = request.POST.get('tracksSelected')[0]


            for users in usersV:

                print users

        return HttpResponse("Success")

    else:

        return HttpResponse("Error")

正确的语法是数据:{tracksSelected:tracksSelected},


查看完整回答
反对 回复 2021-07-01
  • 2 回答
  • 0 关注
  • 139 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信