如何在jQuery中使$ .get()函数同步?

我想在我的函数中使$ .get()方法同步。 在ajax aysnc : false帮助我,现在我如何对$.get()做同样的事情

 var ifsc_code = $('#ifsc-code').val(); var api_url = 'http://api.techm.co.in/api/v1/ifsc/'+ifsc_code; $.get(api_url, function(data, status){ //console.log(data.status); var status = data.status; if (data.status == "success") { $.each(data,function(key,value){ var address = value.BANK+", " + value.BRANCH+", " + value.ADDRESS ; $('.bank-details').removeClass('no-ifsc').text(address); }); var res = "true"; alert('inside checkIfsc true'); return res; } else if (data.status == "failure") { $('.bank-details').addClass('no-ifsc').text(data.message); var res = "false"; alert('inside checkIfsc false'); return res; } 

或者还有其他方法可以做同样的事情吗?

$ .get也接受这样的参数

 $.get({ url: url,// mandatory data: data, success: success, dataType: dataType, async:false // to make it synchronous }) 

虽然已经回答:

 $.ajax({ method: 'GET', async: false }); 

我想警告你以下内容:

  • 阻止javascript执行,并可能因此锁定网页(没有按钮工作等等,看起来你的页面在ajax调用期间挂起)
  • 使用同步调用会发出控制台警告。

Javascript是基于事件驱动设计构建的。 当ajax / get调用完成后,您还可以触发自定义命名事件(事件数据中包含数据结果),并让后续操作侦听此事件。

例如:

 $(form).on('submit',function(){ var formEl = this; $.get({...}).success(function(data){ var event = new Event('data-submitted'); event.data = data; formEl.dispatchEvent(event); }) }); $(form).on('data-submitted',function(event){ var data = event.data; // you can handle the post ajax request event here. }); 

添加对象参数

 $.get({ url: 'your-url', async:false });