22

google chromeを使用したajaxリクエストでクラッシュするWebアプリケーションがあります(テストされた他のすべてのWebブラウザーで動作します)。デバッグ後、エラーの原因はresponse.responseTextが未定義であることがわかりました。xhrオブジェクトは次のようになります。

argument: undefined
isAbort: false
isTimeout: undefined
status: 0
statusText: "communication failure"
tId: 3

[ネットワーク]タブのデバッガーで「(失敗)」と表示されますが、すべてのヘッダーがあり、応答本文(有効なJSON)をクリップボードにコピーすることもできます。

私の質問は-この問題をどのようにデバッグできますか?追加情報の入手先、このリクエストが失敗する原因は何ですか?

4

2 に答える 2

13

私はついに私の問題の解決策を見つけました:AdBlocksは、ajaxリクエストをブロックすると、「通信障害」とだけ表示されます。

于 2012-12-17T21:53:59.070 に答える
4

最初に再確認するのは、応答から返されるデータが有効なJSONであることです。このオンラインJSONLintのようなJSONバリデーターに渡すだけです:http://jsonlint.com/

jQueryのようなものを使用してAJAXリクエストを作成していると思います。その場合は、そのライブラリの開発バージョンを使用していることを確認してください。スクリプトの開発バージョン(非圧縮)を使用しているので、使用している特定の関数($ .ajaxなど)を見つけて、Chromeインスペクター内で、AJAX応答が最初にあるコードにブレークポイントを挿入します処理されます(例:https://github.com/jquery/jquery/blob/master/src/ajax.js#L579)。次に、コードのステップに進み、さまざまな戻り値を調べて、何が問題になっているのかを正確に確認します。

jQueryのようなものを使用してAJAX呼び出しを行わない場合は、フレームワークを使用して、現在発生している可能性のあるブラウザー間の互換性の問題を回避することをお勧めします。

于 2013-02-17T02:42:17.437 に答える