javascript – 如何让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请求?

解决方法:

jQuery documentation:您将异步选项指定为false以获取同步Ajax请求.然后你的回调可以在你的母亲功能进行之前设置一些数据.

如果按照建议更改,您的代码将如下所示:

beforecreate: function (node, targetNode, type, to) {
    jQuery.ajax({
        url: 'http://example.com/catalog/create/' + targetNode.id + '?name=' + encode(to.inp[0].value),
        success: function (result) {
            if (result.isOk == false) alert(result.message);
        },
        async: false
    });
}

相关文章

IE6是一个非常老旧的网页浏览器,虽然现在很少人再使用它,但...
PHP中的count()函数是用来计算数组或容器中元素的个数。这个...
使用 AJAX(Asynchronous JavaScript and XML)技术可以在不...
Ajax(Asynchronous JavaScript and XML)是一种用于改进网页...
本文将介绍如何通过AJAX下载Excel文件流。通过AJAX,我们可以...
Ajax是一种用于客户端和服务器之间的异步通信技术。通过Ajax...