1

我在追一个讨厌的问题。onclick 处理程序中的 AJAX 调用未完成,因为浏览器在调用过程中触发了 document.ready。在 Firebug 控制台中跟踪 readystate 和状态时,我得到:

  • READYSTATECHANGE:1 STATUS:0
  • READYSTATECHANGE:2 STATUS:0
  • READYSTATECHANGE:4 STATUS:0
  • Document Ready(-> 这是第二次触发,在重新连接 UI 时破坏了一切)

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

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

$.getJSON
$.ajax

以及使用标准XMLHttpRequest对象。

有没有人见过这个?用于更深入调试的指针会很棒。

4

1 回答 1

0

调试完问题后,我现在有一个解决方法。我的 AJAX 调用是从链接到 Twitter 引导按钮的单击处理程序中调用的。单击该按钮会触发 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>

这可能还不是根本原因。

于 2013-02-16T16:31:20.627 回答