需要帮助。我正在编写一个返回 ajax 调用结果的函数,但我没有得到任何结果,我想这是一个范围问题,但是有什么方法可以做到吗?这是我的代码:
function Favorites() {
var links;
$.ajax({
type: "GET",
url: "/Services/Favorite.svc/Favorites",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
cache: false,
success: function(msg) {
links = (typeof msg.d) == 'string' ? eval('(' + msg.d + ')') : msg.d;
}
});
return links;
};
最佳答案
Ajax 是异步的,即当执行返回链接
时,success
中的回调函数可能还没有被调用。
扩展您的函数以接受回调:
function Favorites(callback) {
var links;
$.ajax({
type: "GET",
url: "/Services/Favorite.svc/Favorites",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
cache: false,
success: callback
});
};
并用以下方式调用它:
var callback = function(msg) {
links = (typeof msg.d) == 'string' ? eval('(' + msg.d + ')') : msg.d;
// do other stuff with links here
}
Favorites(callback);
关于返回ajax调用结果的JavaScript函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2682274/