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

我正在通过 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 here

var tracksSelected = [];


//function that fill tracksSelected

function tagTrack(track_num){

  if(tracksSelected.includes(track_num)){

    var index = tracksSelected.indexOf(track_num);

    tracksSelected.splice(index, 1);

  }else{

      tracksSelected.push(track_num);

  }};


//ajax function

function 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]


视图.py


def 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[]


跃然一笑
浏览 140回答 2
2回答

潇潇雨雨

根据我的访问,ajax请求中发送的数据可以直接访问。例如:def sortedTracks(request):&nbsp; &nbsp; if request.method == 'POST':&nbsp; &nbsp; &nbsp; &nbsp; usersV = request.POST.get('tracksSelected')[0]&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for users in usersV:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; print users&nbsp; &nbsp; &nbsp; &nbsp; return HttpResponse("Success")&nbsp; &nbsp; else:&nbsp; &nbsp; &nbsp; &nbsp; return HttpResponse("Error")正确的语法是数据:{tracksSelected:tracksSelected},
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript