【问题标题】:JQuery Callback Never Called从未调用过的 JQuery 回调
【发布时间】:2011-07-08 17:54:49
【问题描述】:

我有以下 JS/JQuery sn-p:

 function add_item() {
   var item = $("input:text[name='new_item']").val();
   $.post("{{ url_for('add_item') }}",
       {'item' : item},
       function(data) {
         alert(':}');
       });
 }

它向 Flask 网络服务器执行一个简单的 AJAX 请求,并在成功时显示一个警告框(数据总是返回一个 JSON sn-p)。 AJAX 请求将字段添加到 SQLite 数据库并返回。在我的开发盒上,这个请求使用异步请求非常快地完成。但是,在另一台服务器上,此请求使用异步请求需要几秒钟(但小于默认超时)。

问题:当使用异步请求的请求需要很长时间才能完成时,永远不会调用回调。当我将 AJAX 设置更改为同步时,始终会调用回调。

谢谢!

【问题讨论】:

  • 您是否检查过它是否超时?添加一个超时处理程序,看看它是否被调用或增加超时并尝试。还要添加一个错误处理程序以查看您是否收到任何错误。
  • 我尝试增加超时时间 - 这没有任何新的影响。错误处理程序确实被调用。
  • 你去。由于出现错误,您的成功处理程序不会被调用。
  • 如何确定错误方法被调用的原因?如果我同步进行调用,则相同的代码可以工作。

标签: jquery ajax flask


【解决方案1】:

我会在第一个帖子上尝试$.ajax() 功能。似乎得到了更多的维护 - 1.6.2 似乎也有一些问题,所以如果需要,请尝试 1.6.1:http://api.jquery.com/jQuery.ajax/

【讨论】:

    【解决方案2】:

    使用错误方法找出您遇到的错误。

    function add_item() {
       var item = $("input:text[name='new_item']").val();
       $.post("{{ url_for('add_item') }}",
           {'item' : item},
           function(data) {
             alert(':}');
           }).error(function(jqXHR, textStatus, errorThrown) { alert("error"); });
     }
    

    【讨论】:

      猜你喜欢
      • 2014-05-30
      • 2017-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-15
      相关资源
      最近更新 更多