Async false表示速记AJAX获取请求

10 ajax jquery

我使用以下ajax get函数来检查用户的状态.可以async: false用这种简写方法设置吗?如果不是如何更改,以便我可以添加async false?

$.get("/submit/checkuser/", function (userStatus) {
    if (userStatus == 'Disabled') { // check if user if disabled                    

    } else if (userStatus == 'Deleted') { // check if user if deleted

    } else {

    };
}).fail(function () {                
    connectionError();
});
Run Code Online (Sandbox Code Playgroud)

Str*_*ner 22

进行同步$.get调用的唯一方法是将ajaxSetup设置为synchronous:

jQuery.ajaxSetup({async:false});
Run Code Online (Sandbox Code Playgroud)

这被认为是不好的形式,因为它会影响JQuery在页面上发出的每个ajax调用.我建议只是咬紧牙关并使用更复杂的jQuery.ajax语法.

请参阅如何让jQuery执行同步而非异步的Ajax请求?进行更全面的讨论.

  • 这应该标记为正确答案 (2认同)
  • 我们可以在$ .get之后将设置重置为async:true吗? (2认同)

Bob*_*ate 7

这可能对你有用

$.ajax({
    url : "/submit/checkuser/",
    type : "get",
    async: false,
    success : function(userStatus) {
       if (userStatus == 'Disabled') { // check if user if disabled                    
       } else if (userStatus == 'Deleted') { // check if user if deleted
       } else {
       };
    },
    error: function() {
       connectionError();
    }
 });
Run Code Online (Sandbox Code Playgroud)

  • 根据强调**SHORTHAND的问题,这不应该是正确答案**请参阅@Stryner答案http://stackoverflow.com/a/25489055/1226748 (6认同)

Aru*_*E S 5

从上面看,我像这样使用它

jQuery.ajaxSetup({async:false});

  // my code 

jQuery.ajaxSetup({async:true});
Run Code Online (Sandbox Code Playgroud)