gpt4 book ai didi

jQuery 无法在 AJAX 函数内定义变量

转载 作者:行者123 更新时间:2023-12-01 08:00:19 26 4
gpt4 key购买 nike

我在更改 AJAX 函数内的任何变量时遇到问题。

如果我在外面有一个变量,可以说

var myName = "My name is Kenny";

以及我在 AJAX 函数中所做的事情 myName.replace("Kenny", "Earl");

当我这样做时console.log(myName) AJAX 函数之后,我得到“我的名字是 Kenny”,就好像什么也没发生一样。

这是一个例子:

var actorId;
var castListUrl = 'http://api.themoviedb.org/3/person/id/movie_credits?api_key=###';
//start ajax request
$.ajax({
url: "http://api.themoviedb.org/3/search/person?api_key=###&query=" + actorsName,
//force to handle it as text
dataType: "text",
success: function (data) {
//data downloaded so we call parseJSON function
//and pass downloaded data
var json = $.parseJSON(data);
actorId = json.results[0].id;

castListUrl = castListUrl.replace("id", "1245");
console.log(castListUrl); // This returns 'http://api.themoviedb.org/3/person/1245/ movie_credits?api_key=###' with **ID** being changed

//now json variable contains data in json format
//let's display a few items
$('#results').html('The actors name is ' + json.results[0].id);
}
});
console.log(castListUrl); // This returns 'http://api.themoviedb.org/3/person/id/movie_credits?api_key=###' without **ID** being changed

我一直在阅读有关 jQuery 范围的内容,但我不知道我做错了什么。

最佳答案

AJAX 请求是异步的:一旦发出请求,您的代码将继续执行,而无需等待响应。当响应到达时,将调用您更新变量的响应回调。

这意味着 console.log 在 AJAX 响应回调之前执行。如果将其移至回调中,您将看到更新后的值。

关于jQuery 无法在 AJAX 函数内定义变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20302441/

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