gpt4 book ai didi

jquery - 创建通用 ajax 函数

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

Possible Duplicate:
jQuery Ajax always returns “undefined”?

我试图提出一个通用的 jquery ajax 函数,它接受 url 和参数并返回结果。我试图避免使用 async:false因为它会锁定浏览器。如果我使用 success ajax调用中的callback,由于时序问题,返回的数据为null(没有等到数据返回就成功)。如果我使用 completepersons LoadPersons 中的对象仍然为空方法,因为它不等待 ajax 调用返回数据。如果放置 alert(persons)complete回调,我得到 [object][Object]所以我正在取回数据。我该如何“解决”这个问题?我说的有道理吗?我还希望在执行此操作时显示“正在加载..”图像。

这是我的代码 -

  <script type="text/javascript">
$(function() {
var persons;
var urlGetPersons = "Default.aspx/GetPersons";

LoadPersons();

function LoadPersons() {
persons = CallMethod(urlGetPersons, { });
if (persons != null) {
// do something with persons.
}
}

function CallMethod(url, parameters) {
var data;
$.ajax({
type: 'POST',
url: url,
data: JSON.stringify(parameters),
contentType: 'application/json;',
dataType: 'json',
success: function(result) {
data = result.d;
}, // use success?
complete: function(result) {
data = result.d;
} // or use complete?
});
return data;
}
});
</script>

最佳答案

这就是我想到的“通用” - 但它仍然是异步的:

function CallMethod(url, parameters, successCallback) {
//show loading... image

$.ajax({
type: 'POST',
url: url,
data: JSON.stringify(parameters),
contentType: 'application/json;',
dataType: 'json',
success: successCallback,
error: function(xhr, textStatus, errorThrown) {
console.log('error');
}
});
}

CallMethod(url, pars, onSuccess);

function onSuccess(param) {
//remove loading... image
//do something with the response
}

关于jquery - 创建通用 ajax 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9337168/

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