Javascript 使用ajax将数据从html传递到python

Javascript 使用ajax将数据从html传递到python,javascript,jquery,python,ajax,Javascript,Jquery,Python,Ajax,欢迎大家,我正在尝试将json数据从html传递到python,我正在获取数据,但格式不正确 下面是我的代码 HTML view.py stat = request.GET.getlist('stat') print(stat) for selected_status in stat: get_project_on_status = Project.objects.all().filter(project_stage=selected_status)

欢迎大家,我正在尝试将json数据从html传递到python,我正在获取数据,但格式不正确

下面是我的代码

HTML

view.py

stat = request.GET.getlist('stat')
    print(stat)
    for selected_status in stat:
        get_project_on_status = Project.objects.all().filter(project_stage=selected_status)
        for project in get_project_on_status:
            project_on_status_list.append(project)
我想要的结果是:

["new","bid","inprogress","onhold","completed"]
但我得到的是:

['["new","bid","inprogress","onhold","completed"]']

如何卸下额外的支架?谢谢

我对python了解不多,但您需要确保您的值不会使用
JSON.stringify
进行字符串化

var status_text = selected_status; // Remove JSON.stringify from here

$.ajax({
  url : '/dashboard/marketing/', // the endpoint
  type : 'GET', // http method
  data : { 'stat' : status_text,
           'csrfmiddlewaretoken': '{{csrf_token}}'
         }, // data sent with the post request
  // handle a successful response
  success : function(data) {
  },
...
此外,jQuery自动处理数据的编码。因此,提交给服务器的实际参数名称将是
stat[]

我认为在python端检索值时,需要将参数名更改为
stat[]
。也许,在这一行:

stat = request.GET.getlist('stat[]')

有关如何发送参数的更多详细信息,请注意。

您应该通过post传递,而不是get。你要求你的js对数据进行字符串化,它做到了。发布你的代码!您好@Federico,谢谢您的输入,我正在更改它,但您能给我看一段正确的代码吗?谢谢。您好@31piy我试图直接发送值,但没有将其字符串化,我使用了
'stat':status\u text
而不是
'status':selected\u status
,但是现在我没有得到任何值。您可以发布所选\u status变量的console.log吗?以防有人和我犯同样的错误
var status_text = selected_status; // Remove JSON.stringify from here

$.ajax({
  url : '/dashboard/marketing/', // the endpoint
  type : 'GET', // http method
  data : { 'stat' : status_text,
           'csrfmiddlewaretoken': '{{csrf_token}}'
         }, // data sent with the post request
  // handle a successful response
  success : function(data) {
  },
...
stat = request.GET.getlist('stat[]')