Javascript 同步等待$.ajax调用

Javascript 同步等待$.ajax调用,javascript,jquery,ajax,Javascript,Jquery,Ajax,我需要一个超链接来执行Ajax调用,完成后,对超链接执行标准操作 <a href="afterwards.html" target="_blank" onclick="return CallFirst();">Link</a> 代码必须等待$.ajax成功,然后从CallFirst()返回true $deferred.when()立即终止。如何使其等待?只需将async属性设置为false $deferred = $.ajax({ typ

我需要一个超链接来执行Ajax调用,完成后,对超链接执行标准操作

<a href="afterwards.html" target="_blank" onclick="return CallFirst();">Link</a>
代码必须等待
$.ajax
成功,然后从
CallFirst()
返回true


$deferred.when()
立即终止。如何使其等待?

只需将
async
属性设置为
false

$deferred = $.ajax({
                type: "POST",
                url: url,
                data: data,
                async: false
            });

但是使用回调确实是一个更好的主意。

只需将
async
属性设置为
false

$deferred = $.ajax({
                type: "POST",
                url: url,
                data: data,
                async: false
            });

但使用回调确实是一个更好的主意。

您可以将async设置为false,但使用回调的做法更好:

.done(function( success) {
    if (success) {
      doSomeThingElseNow();
    }
  });

您可以将async设置为false,但更好的做法是使用回调:

.done(function( success) {
    if (success) {
      doSomeThingElseNow();
    }
  });

使用jquery中的内置ajax回调

$.ajax({
    url: '/path/to/file',
    type: 'default GET (Other values: POST)',
    dataType: 'default: Intelligent Guess (Other values: xml, json, script, or html)',
    data: {param1: 'value1'},
})
.done(function() {
    console.log("success");
})
.fail(function() {
    console.log("error");
})
.always(function() {
    console.log("complete");
});

使用jquery中的内置ajax回调

$.ajax({
    url: '/path/to/file',
    type: 'default GET (Other values: POST)',
    dataType: 'default: Intelligent Guess (Other values: xml, json, script, or html)',
    data: {param1: 'value1'},
})
.done(function() {
    console.log("success");
})
.fail(function() {
    console.log("error");
})
.always(function() {
    console.log("complete");
});
可能的重复可能的重复