我正在尝试在我的flask应用程序中接收2-D列表。发送的json对象如下:
function someFunction() {
var two_d_arr = [[a,1],[b,2],[c,3]];
var data = {
'arr' : two_d_arr
};
$.ajax({
url: 'http://localhost:5025/',
dataType: 'jsonp',
data: data,
success: function(response) {
alert(response);
}
});
}我曾多次尝试以列表的形式检索这些元组,但都失败了。我希望看到它们的方式如下所示:
lst = [[a,1],[b,2],[c,3]]当我打印request.data时,我得到以下输出(为便于阅读而设置了格式):
ImmutableMultiDict([(
'callback', u'jQuery1113017347401613369584_1450454196704'),
('liveCells[2][]', u'c'), ('liveCells[2][]', u'3'),
('liveCells[1][]', u'b'), ('liveCells[1][]', u'2'),
('liveCells[0][]', u'a'), ('liveCells[0][]', u'1')
])我已经尝试了各种方法来提取列表(request.form.getlist,request.args.getList)等。
发布于 2015-12-19 00:14:42
您没有将请求编码为JSON。您只需指定期望从服务器接收的内容(因为您期望JSONP jQuery包含一个callback参数)。
在客户端编码为JSON:
$.ajax({
url: 'http://localhost:5025/',
data: JSON.stringify(data),
success: function(response) {
alert(response);
}
});我省略了dataType参数,如果jQuery不能自动检测响应类型,只设置一个。
在服务器端,使用request.get_json()读取响应。
https://stackoverflow.com/questions/34359477
复制相似问题