Javascript 使用ajax将数据从html传递到python
欢迎大家,我正在尝试将json数据从html传递到python,我正在获取数据,但格式不正确 下面是我的代码 HTML view.pyJavascript 使用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)
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[]')