gpt4 book ai didi

javascript - 如何将变量传递到 HttpRequest 中?

转载 作者:行者123 更新时间:2023-12-03 11:14:23 24 4
gpt4 key购买 nike

我想给 request.onload 函数一个变量,并将 request.response 添加到该变量中。我该怎么做?

function loadathing(url, target){
var request = new XMLHttpRequest();
request.open("GET", url, true);

request.onload = function() {
target = request.response;
};
}

这不起作用,因为它忘记了目标是什么。

最佳答案

这里有两个问题。首先,为了将响应传递给 target,您需要在 target 的属性上执行此操作,而不是直接在 target 上执行此操作,因为 target 不能是 native 值(例如字符串和数字等 native 值)不能通过引用传递)。

function loadathing(url, target){
var request = new XMLHttpRequest();
request.open("GET", url, true);

request.onload = function() {
target.response = request.response;
};
}
var target = {};
loadathing('foo.php', target);

其次,由于您正在执行异步 ajax 请求,因此您需要向函数添加回调,以便外部代码知道何时填充 target.response

function loadathing(url, target, cb){
var request = new XMLHttpRequest();
request.open("GET", url, true);

request.onload = function() {
target.response = request.response;
cb();
};
}
var target = {};
loadathing('foo.php', target, function () {
console.log(target.response);
});

然后,您可以通过一起删除目标并使用回调来简化它。

function loadathing(url, cb){
var request = new XMLHttpRequest();
request.open("GET", url, true);

request.onload = function() {
cb(request.response);
};
}
loadathing('foo.php', function (response) {
console.log(response);
});

关于javascript - 如何将变量传递到 HttpRequest 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27408513/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com