【发布时间】:2013-10-25 20:11:22
【问题描述】:
我正在尝试使用 jQuery 和 Python 发送字典。问题是如果我使用 async: false 它可以工作,但我的目标是使用 async: true 发送数据。 此外,当我发送数据时,alert() 我在“完成”函数中显示了两次。我该如何解决这两个问题?
我附上 JavaScript 代码和 Python 代码:
首先是Javascript代码:
arrObj = [['numero', 'dato', 'dato2'], ['12345', 'prueba', 'prueba2'], ['54321', 'abeurp', '2abeurp'], ['112233', 'trewq', 'fdsag']];
var n = arrObj.length;
for(var i=1;i<n;i++){
var jsonArr = {};
jsonArr = {'numero': arrObj[i][0],
'dato': arrObj[i][1],
'dato2': arrObj[i][2]
};
jsonArr = JSON.stringify(jsonArr);
$.ajax({
data: jsonArr,
type: 'post',
url: '/getData',
async: true,
dataType: 'text',
error: function(output){
console.log('error');
},
success: function(output){
console.log('bien ' + i);
},
complete: function(output){
alert("fin");
}
});
}
还有 Python 脚本:
class getData(webapp.RequestHandler):
def post(self):
v1 = self.request.get('numero')
v2 = self.request.get('dato')
v3 = self.request.get('dato2')
logging.info('DEBUG: var1=' + v1 + ' var2=' + v2 + ' var3=' + v3)
self.response.out.write('good')
感谢您的帮助。
【问题讨论】:
-
为什么需要同步请求?您是否确认您的服务器正在接收 4 个请求?您是否通过 javascript 控制台检查了请求?
-
它是同步的,因为它必须是这样的。我自己解决了这个问题。这是来自 jsonArr = {'numero': arrObj[i][0]... 和 stringify 函数的代码块。在我删除它之后,它起作用了。
标签: javascript jquery python ajax google-app-engine