AJAX调用失败取决于代码中的位置,浏览器触发document.ready mid-call。 Twitter Bootstrap问题?

时间:2013-02-02 20:21:40

标签: ajax twitter-bootstrap document-ready

我正在追逐一个讨厌的问题。 onclick处理程序中的AJAX调用无法完成,因为浏览器会触发document.ready mid-call。在Firebug控制台中跟踪readystate和status时,我得到:

  • READYSTATECHANGE:1 STATUS:0
  • READYSTATECHANGE:2 STATUS:0
  • READYSTATECHANGE:4 STATUS:0
  • Document Ready( - >这是 第二次射击,在重新连接UI时打破所有内容)

我相信我没有面对跨域安全块,因为在页面中的其他位置调用时,相同的AJAX调用将正确完成。

我正在使用Jquery 1.8.1,我尝试了多种AJAX客户端调用(即

$.getJSON
$.ajax

以及使用标准XMLHttpRequest对象。

有没有人见过这个?更深入调试的指针非常棒。

1 个答案:

答案 0 :(得分:0)

调试完问题后,我现在有一个解决方法。我的AJAX调用是从链接到Twitter Bootstrap Button的点击处理程序调用的。单击该按钮会触发AJAX调用,但也会触发window.load事件,该事件会刷新JS应用程序。

我的工作是用<button>..</button>字段替换<input>..</input>,见下文:

<form class="form-search">
    <label>Enter search string:
        <input id="SearchString" type="text" class="input-medium search-query">
        <!-- Broken: <button id="SearchAction" type="submit" class="btn btn-primary"> Search </button> -->
        <!-- This works: -->
        <input type="button" id="SearchAction" value="Go Find"/>
        <img id="RssAction" style="vertical-align:bottom" src="images/feed-icon-14x14.png">
    </label>
</form>

这可能不是根本原因。