1

私は厄介な問題を追いかけています。ブラウザーが呼び出し中に document.ready を起動するため、onclick ハンドラーでの AJAX 呼び出しが完了しません。Firebug コンソールで readystate とステータスをトレースすると、次のようになります。

  • READYSTATECHANGE:1 STATUS:0
  • READYSTATECHANGE:2 STATUS:0
  • READYSTATECHANGE:4 STATUS:0
  • Document Ready(-> これは 2 回目の発火であり、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 に答える