我有一个 key_gen.php 文件,其中包含一个生成随机密钥的函数。执行时,php 文件会返回一个密钥(经过测试并且可以工作)。
在我的 javascript 文件中,我在按钮上有一个点击事件(有效),如下所示:
$('#kg_btn').click(function(){});
然后,在我的点击事件中,我有一个函数:
var get_key = function(){
for(var i = 0; i < kg_quantity; i++) {
$.ajax ({
url: "../keygen/gen_rkey.php",
type: "GET",
datatype: "json",
success: function(data) {
var j_obj = JSON.parse(data);
//alert("Success!");
prs = j_obj.test;
console.log(prs);
//add_key();
},
error: function(error) {
alert("Error! Can't send the data");
}
}); //ajax call ends
}
}
当我运行此函数一次(通过将“Kg_quantity”变量设置为 1)时,每次单击按钮时都会得到正确的行为。结果是每次单击时 console.log 上的键不同。
如果我将“kg_quantity”设置为 1 以外的任何其他数字(例如:3、9、10),我会返回 console.log 消息,但生成的数字是相同的。
我希望通过将 ajax 对象插入 for 循环来多次执行 ajax 调用。我也尝试将 ajax 调用放在原型函数中,但我得到了相同的结果。
编辑:我尝试添加一个闭包(正如罗斯建议的那样),但我得到了完全相同的结果。
谢谢。