相关疑难解决方法(0)

如何让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);
  });
}
Run Code Online (Sandbox Code Playgroud)

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

javascript ajax jquery asynchronous

1173
推荐指数
13
解决办法
69万
查看次数

如何等待ajax调用返回

我正在尝试使用JQuery,虽然我在努力成功等待ajax调用成功然后执行更多代码.有没有办法等待ajax打电话?我见过一些例子,但似乎只是盲目地等待x秒钟?

谢谢,詹姆斯

html javascript jquery

6
推荐指数
1
解决办法
8717
查看次数

如果您不想在$ .ajax()的调用中定义jQuery $ .ajax()成功函数,请在何处定义?

如果我想分离出我的ajax success函数,以便它在我的其他地方定义<script>,它是否必须在我的内部

$(document).ready(function()
{
Run Code Online (Sandbox Code Playgroud)

部分还是可以与非jQuery javascript函数一起定义?

  $.ajax(
  {
    url: '/load_prayer',
    cache: false,
    dataType: 'json',
    type: 'POST',
    data: ({ 'prayerId' : prayerId }),
    success: function(data)
    {
        $('#prayer_date').html(data.Date);
        console.log(data);
    },
    error: function(e, xhr)
    {
        console.log(e);
    }
  });
Run Code Online (Sandbox Code Playgroud)

我不想在调用中定义它的原因ajax是它最终将是一个大函数,如果它与其他ajax调用参数混合在一起会令人困惑.

例如,这会工作:

$.ajax(
{
    url: '/load_prayer',
    cache: false,
    dataType: 'json',
    type: 'POST',
    data: ({ 'prayerId' : prayerId }),
    success: handlePrayer(data),
    error: function(e, xhr)
    {
        console.log(e);
    }
});

handlePrayer(data)
{
    $('#prayer_date').html(data.Date);
    console.log(data);
}
Run Code Online (Sandbox Code Playgroud)

jquery

1
推荐指数
1
解决办法
7574
查看次数

标签 统计

jquery ×3

javascript ×2

ajax ×1

asynchronous ×1

html ×1