我正在尝试使用bind访问带有ajax请求的外部变量。我在下面的代码片段中复制了我的问题。
我的ajax请求在for循环中,并且我试图将eid和pid绑定到成功函数,以便我可以在请求时访问它们的值。但是,这似乎已经弄乱了数据和状态,因为数据是“ myPid”,状态是我返回的数据的对象,尽管eid和pid似乎正确显示了。
jQuery .ajax规范说该函数的参数依次是结果,状态和xhr,这似乎是我的工作方式,然后添加了绑定eid和pid的步骤。
我想念什么吗?为什么我返回的数据绑定为状态?
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("button").click(function(){
var pid = 'myPid';
var eids = [888, 999];
for(var ind in eids) {
let eid = eids[ind];
$.ajax({
url: "https://reqres.in/api/users?page=2", async: false,
success: function(data, status) {
console.log("data:"+data);
console.log("status:"+status);
console.log("eid:"+eid);
console.log("pid:"+pid);
}.bind(eid, pid),
error: function(a, b, err) {
console.log(err);
}
});
}
});
});
</script>
</head>
<body>
<div><h2>Let AJAX change this text</h2></div>
<button>Change Content</button>
</body>
</html>