javascript - 通过 JQuery 通过 AJAX 将变量列表发送到 python

标签 javascript jquery python ajax

在我的项目中,我使用 javascript 遍历一组单选按钮。首先,它检查名称集中的选定按钮是否已更改,如果已更改,则记录该行新选定按钮的值,将其附加到变量 dataString,然后继续下一个按钮组。这一切都很好,它完美地收集了所有数据。但是,当我尝试通过 AJAX 发送该数据时遇到问题。

对于更改的每一行,我附加一个 rowName 变量和一个 deviceName 变量来执行 dataString。理想情况下,我想发送这些,以便当我将数据发送到 Python 时,我最终得到一个 rowName 列表和一个 deviceName 列表,就像您发送多个变量时发生的那样同名。

我的 AJAX 调用如下:

var call= $.ajax({
    type: "POST",
    url: "http://localhost/cgi-bin/savestate.py",
    data: dataString
}).done(function() {
    document.getElementById("upper").innerHTML+=(call.responseText);
});

正如我所说,我需要发送的数据已得到足够好的收集。现在,dataString 被格式化为如下所示:

"{rowName: 'firstRowName', deviceName: 'firstDeviceName', rowName: 'secondRowName', deviceName: 'secondDeviceName'}"

我还尝试更改 AJAX 调用,使 data: 调用看起来像:

data: {dataString}

并将 dataString 格式化为:

"rowName: 'firstRowName', deviceName: 'firstDeviceName', rowName: 'secondRowName', deviceName: 'secondDeviceName'"

无论我尝试发送哪种方式,数据都不会到达 python 脚本。当我从 Python 返回数据时,它显示为

FieldStorage(None, None, [])

既然 AJAX 调用中 data: 属性的格式是 {keyname: value, etc},是否可以在预制列表中发送数据以那种格式,还是我必须改变我格式化 dataString 的方式并以其他方式发送它?

最佳答案

我最终通过两种方式达到了预期的效果。

第一种方法:回想在实现 JQuery 之前我是如何执行 AJAX 请求的,我将 dataString 格式化为

rowName=firstRowName&deviceName=firstDeviceName&rowName=secondRowName&deviceName=secondDeviceName

等等。然后我简单地将它附加到 AJAX 调用中的 url,这样它看起来像:

url:"http://localhost/cgi-bin/saveState.py"+dataString

第二种方法:我让它工作的另一种方法是用与第一种方法相同的方式格式化dataString,但随后只需将其用作我的data 属性。

data: dataString

我觉得这很奇怪,因为它根本不遵循 data: 调用的通常格式。但遗憾的是,它确实有效。

关于javascript - 通过 JQuery 通过 AJAX 将变量列表发送到 python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17278103/

相关文章:

javascript - 如何在 Vuetify 中针对不同屏幕尺寸使用断点?

javascript - rgba 颜色 IE 8 的 jQuery 内联样式 rgb 回退

php - 在脚本中使用 php

python - 将多处理 Pool.map 与 lambda 一起使用

javascript - 使用 Javascript 提交表单

javascript - 使用 html5 canvas 绘制一个切边的圆

javascript - 更改弹出消息

php - 客户端即时视频生成

python - 在 seaborn 中结合两个热图

python - 如何将文本文件内容转换为字典