我想用jQuery和Python發送字典。問題是如果我使用async:false它可以工作,但我的目標是使用async:true發送數據。 另外,當我發送數據alert()時,我在「完成」函數中顯示了兩次。我該如何解決這兩個問題?如何用jQuery ajax和Python發送字典
我附上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個請求? Hvae是否通過您的JavaScript控制檯檢查了請求? – dm03514
它是同步的,因爲它必須是這樣的。我自己解決了這個問題。它是來自jsonArr = {'numero':arrObj [i] [0] ...和stringify函數的代碼塊。我刪除它後,它工作。 – Victor