以下是我知道为XMLHttpRequest请求处理程序添加参数的方法。
var request = new XMLHttpRequest();
function ABC() {
if (request) {
request.open('GET', url, true);
request.onreadystatechange = function() { handler(param1, param2); };
request.send();
}
}
function handler(param1, param2) {
if (request.readyState == 4) {
if (request.status == 200) {
//do something on success
} else {
alert("Invocation Errors Occured");
}
}
}
这很好,很好。但是,请看下面的代码。
var request = new XMLHttpRequest();
function ABC() {
if (request) {
request.open('GET', url, true);
request.onreadystatechange = handler;
request.send();
}
}
function handler(evtXHR) {
if (request.readyState == 4) {
if (request.status == 200) {
//do something on success
} else {
alert("Invocation Errors Occured");
}
}
}
在这里,我在没有任何参数的情况下调用处理程序,但我在代码的XMLHttpRequestProgressEvent
参数中获得了evtXHR
类型的对象。
现在我有两个问题。
evtXHR
参数?evtXHR
一起添加参数,以便我仍然可以获得XMLHttpRequestProgressEvent
个对象? 所以,我想要这样的事情:
function handler(evtXHR, myParam) {
if (request.readyState == 4) {
if (request.status == 200) {
//do something on success
} else {
alert("Invocation Errors Occured");
}
}
}
答案 0 :(得分:0)
handler
函数。这样:
var myData = 1234;
request.onreadystatechange = handler;
function handler(event) {
alert(myData); // Use myData from the wider scope instead of trying to pass it as an argument
}