gpt4 book ai didi

jquery - JavaScript 未定义且 jQuery 延迟

转载 作者:行者123 更新时间:2023-12-01 06:35:53 25 4
gpt4 key购买 nike

我正在尝试使用 jQuery .Deferred/.promise 编写 AJAX 请求。页面加载时该函数被命中,然后什么也没有发生,我无法访问我的 issueData 变量。当我运行该函数时,它是未定义的,但我的 AJAX 调用返回 JSON 对象。我试图弄清楚问题是否出在如何设置 issueData .deferred().promise()

function getIssues(issueData) {
var issueData = new jQuery.Deferred();
return $.ajax({
url: 'http://localhost:49650/Issues.svc/GetIssues',
type: 'GET',
dataType: 'json',
success: function(data) {
issueData = data;
},
error: function () {
alert('Call not resolved')
}
});
return issueData.promise();
}

最佳答案

您不需要在这里使用 jQuery.Deferred()$.ajax 会为您处理这个问题。您只需返回 $.ajax({})。另外,由于 AJAX 是异步,您的 issueData = data; 不会做任何有用的事情。

需要使用回调来获取返回的数据。

你可以这样做:

function getIssues() {
return $.ajax({
url: 'http://localhost:49650/Issues.svc/GetIssues',
type: 'GET',
dataType: 'json',
error: function () {
alert('Call not resolved')
}
});
}

getIssues().done(function(data){
// use the returned JSON here
});

或者,您可以使用success函数:

function getIssues() {
return $.ajax({
url: 'http://localhost:49650/Issues.svc/GetIssues',
type: 'GET',
dataType: 'json',
success: function(data){
// use the returned JSON here
},
error: function () {
alert('Call not resolved')
}
});
}

getIssues();

关于jquery - JavaScript 未定义且 jQuery 延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16426263/

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