spe*_*123 6 javascript python arrays get http
我正在从 Javascript 向 Python 发出获取请求。我正在尝试传递一个二维数组,比如
[["one", "two"],["foo", "bar"]]
Run Code Online (Sandbox Code Playgroud)
这是我目前正在尝试的,但它不起作用。
因此,在我的 javascript 中,我有一个与上面的数组类似的数组,然后像这样传递它
var xmlHttp = new XMLHttpRequest();
xmlHttp.open( "GET", "http://192.67.64.41/cgi-bin/hi.py?array=" + myArray, false );
xmlHttp.send( null );
Run Code Online (Sandbox Code Playgroud)
然后在 python 中我得到这样的结果
import cgi
form = cgi.FieldStorage()
array = form.getvalue("array")
Run Code Online (Sandbox Code Playgroud)
但如果我这样做的话,结果并不正确,在 python 中
print array[0]
#I get -> "o"
print array[1]
#I get -> "n"
print array[2]
#I get -> "e"
Run Code Online (Sandbox Code Playgroud)
等等,但如果我想要的是
print array[0]
#output -> ["one", "two"]
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
谢谢
您不能简单地将数组作为查询参数传递。您需要迭代该数组并将其添加到 URL 字符串中,例如?array[]=one&array[]=two
const a = ['one', 'two']
let url = 'www.google.com'
for (let i = 0; i < a.length; i++) {
// Check to see if the URL has a query string already
if (url.indexOf('?') === -1) {
url = `${url}?array[]=${a[i]}`
} else {
url = `${url}&array[]=${a[i]}`
}
}
console.log(url)Run Code Online (Sandbox Code Playgroud)