sách gpt4 ai đã đi

jQuery: thực hiện một yêu cầu AJAX đồng bộ, sau đó thực hiện một loạt các yêu cầu ajax khác

In lại 作者:行者123 更新时间:2023-12-02 21:47:07 40 4
mua khóa gpt4 Nike

我有一个 ASP.NET MVC 应用程序,我正在尝试在 javascript 函数中使用 jQuery 来创建一系列操作。该函数由三部分组成。

我想做的是:如果满足某些条件,那么我想执行同步 jQuery ajax 调用 CheckData。取决于返回的结果:

  • 它返回 ok -> 我想继续按此顺序执行第 2 部分,最后执行第 3 部分。
  • 它返回 Nok -> 然后完成并返回。它不会继续执行第2部分和第3部分。

所以我设置了 async: false 但它不起作用,程序继续执行第2部分和第3部分。我知道 async:false 已被弃用,那么我该如何实现这一点呢?

function onCheckValidData()
{
// do something....

// PART 1 STARTS HERE

if (some_condition_is_satified)
{
$.ajax({
url: '@Url.Action("CheckData", "MyController")',
async: false,
loại: "POST",
dataType: "JSON",
beforeSend: function () {
showLoading();
},
success: function (result) {
if (!result.isOk) {
return;
}
},
complete: function(){
hideLoading();
}
});
}

// PART 2 STARTS HERE

// do something.....
// continue doing more thing.....
// more things.....

// PART 3 STARTS HERE

$.ajax({
url: '@Url.Action("MyActionMethod1", "MyController")?' + paramsStr,
loại: "POST",
dataType: "html",
beforeSend: function () {
showLoading();
},
success: function (result) {
if (result == 'True') {
jsMethod2(); // jsMethod2 is another javascript method which contains another $.ajax block
}
else if (result == 'False') {
jsMethod3(); // jsMethod3 is another javascript method which contains another $.ajax block
}
else {
cảnh báo(kết quả);
}
},
complete: function(){
hideLoading();
}
});
}

我在 Controller 中的操作:

    private JsonResult CheckData()
{
MyBoolResult res = new MyBoolResult();

// do something....

return Json(new { isOk = res.isOk });
}


public String MyActionMethod1(String param1, String param2, bool param3, string param4, string param5)
{

// làm gì đó

return condition ? "True" : "False";
}

1 Câu trả lời

无需使其同步。如果您希望“第 2 部分”和“第 3 部分”等待 ajax 请求完成,只需将它们放入一个函数中并在成功时调用它们:

function onCheckValidData()
{
// do something....

// PART 1 STARTS HERE
if (some_condition_is_satified)
{
$.ajax({
url: '@Url.Action("CheckData", "MyController")',
loại: "POST",
dataType: "JSON",
beforeSend: function () {
showLoading();
},
//Success will execute only if the ajax-request is finised
success: function (result) {
if (!result.isOk) {
return;
}
part2();
part3();
},
complete: function(){
hideLoading();
}
});
}

// PART 2 STARTS HERE
function part2 () {/*do something.....*/}

// PART 3 STARTS HERE
function part3 () {/*$.ajax({...})*/}
}

关于javascript - jQuery:执行同步 AJAX 请求,然后执行一系列其他 ajax 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60228416/

40 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com