猿问

如何让jQuery执行同步而非异步的Ajax请求?

如何让jQuery执行同步而非异步的Ajax请求?

我有一个JavaScript小部件,它提供标准的扩展点。其中之一就是beforecreate功能。它应该返回false以防止创建项目。

我使用jQuery在这个函数中添加了一个Ajax调用:

beforecreate: function (node, targetNode, type, to) {
  jQuery.get('http://example.com/catalog/create/' + targetNode.id + '?name=' + encode(to.inp[0].value),

  function (result) {
    if (result.isOk == false) 
        alert(result.message);
  });}

但我想阻止我的小部件创建项目,所以我应该返回false母函数,而不是回调。有没有办法使用jQuery或任何其他浏览器中的API执行同步AJAX请求?


慕尼黑8549860
浏览 984回答 4
微课
4回答

aluckdog

优秀解决方案 我注意到当我尝试实现它时,如果我在success子句中返回一个值,那么它返回为undefined。我必须将它存储在变量中并返回该变量。这是我提出的方法:function getWhatever() {   // strUrl is whatever URL you need to call   var strUrl = "", strReturn = "";   jQuery.ajax({     url: strUrl,     success: function(html) {       strReturn = html;     },     async:false   });   return strReturn;}
随时随地看视频慕课网APP
我要回答