小编典典

如何使jquery“$ .post”请求同步

all

我一直在谷歌上搜索这个并在我的错误修复列表中避免这个错误很长时间了,但我终于到达了列表的末尾,我必须让函数返回 true/false
到最后一个说明验证是否成功。

我正在使用 ajax 将某些字段与数据库中已经存在的字段进行比较,默认情况下,该$.post()方法会异步执行它的操作。

我在调用中设置了一个变量onSuccess,因此调用方法没有得到响应,所以我所有的 js/jquery 在 pageLoad
上都失败了......如果我仍然可以继续使用该$.post方法,我会更喜欢。


阅读 83

收藏
2022-08-16

共1个答案

小编典典

jQuery < 1.8

我可以建议您使用,$.ajax()而不是$.post()因为它更可定制。

如果你打电话$.post(),例如,像这样:

$.post( url, data, success, dataType );

你可以把它变成它的$.ajax()等价物:

$.ajax({
  type: 'POST',
  url: url,
  data: data,
  success: success,
  dataType: dataType,
  async:false
});

请注意参数对象async:false末尾的。$.ajax()

在这里,您可以获得参数的完整详细信息$.ajax()jQuery.ajax() - jQuery API
文档


jQuery >=1.8 “async:false” 弃用通知

jQuery >=1.8 不会在 http 请求期间阻塞 UI,因此只要处理请求,我们就必须使用变通方法来停止用户交互。例如:

  • 使用插件,例如BlockUI
  • 在调用之前手动添加覆盖$.ajax(),然后在调用 AJAX.done()回调时将其删除。
2022-08-16