gpt4 book ai didi

jquery - 异步AJAX调用问题

转载 作者:行者123 更新时间:2023-12-01 08:25:57 24 4
gpt4 key购买 nike

我有一个 jquery Ajax 调用函数,用于将表单提交到数据库进行保存。还可以使用它从服务器获取数据并向用户显示。当我发布\保存表单数据时,我必须向用户显示发布结果,无论是否有错误。

如果我在同步模式下运行,一切正常。如果我想要的话,我可以获得数据,或者使用这种单一方法发布后获得结果。

但它似乎无法在异步模式下工作。

如何将数据传回调用者? Web 服务正确返回数据。请参阅我的alert()。它向我显示了数据。

如何以异步模式获取数据并向用户显示以及发布数据并向用户显示结果?我是否需要创建 2 个单独的函数,一个用于获取,另一个用于发布?

这是函数:

function MakeAjaxCall(svr, webmethod_name, op, btn, rslt, bGetData) {
var data = "";
var args = '';
var l = arguments.length;
if (l > 7) { for (var i = 7; i < l - 1; i += 2) { if (args.length != 0) args += ','; args += '"' + arguments[i] + '":"' + arguments[i + 1] + '"'; } }

var surl = "http://<myserver>/" + svr + '.aspx';
$.ajax({
type: "POST",
async: (op == "sync") ? false : true,
url: surl + "/" + webmethod_name,
data: "{" + args + "}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function ShowSuccess(res) {
//alert('dfx res:'+res.d);//THIS SHOWS THE DATA FROM SQL CALL FINE
data = res.d;
},
fail: function ShowFail(xhr) {
data = "ERROR";
}
});
}

最佳答案

添加回调函数?例如,

function MakeAjaxCall(svr, webmethod_name, op, btn,
rslt, bGetData, callbackFunction) {
//removed for brevity

var surl = "http://<myserver>/" + svr + '.aspx';
$.ajax({
//removed for brevity
success: function ShowSuccess(res) {
//pass the data to the callbackFunction
callbackFunction(res.d);
},
//etc.
});

然后只需将函数名称(或匿名函数)传递到 MakeAjaxCall 函数中,如下所示:

//anonymous function
MakeAjaxCall(svrVal, somewebmethod_name, opVal, btnVal,
rsltVal, bGetDataVal, function(data) { alert(data); });

//named function
MakeAjaxCall(svrVal, somewebmethod_name, opVal, btnVal,
rsltVal, bGetDataVal, alert)

关于jquery - 异步AJAX调用问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3857785/

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