0

次のコードは、IE 以外のすべてでうまく機能します。IE では、アラートdata.responseTextは未定義と言っています。ただし、他のすべてのブラウザーでは、正しいデータが返されます。

私は何が欠けていますか?Firefox、Chrome、Safariなどでうまく機能します。

data.responseTextデータのみに変更すると、 [object Object].

$.ajax({
    type: "POST",
    url: "",
    data: "command=loadComments&id=" + song_id,
    dataType: "html",
    complete: function(data) {
        loading.fadeOut('slow');

        $("#comments-list").fadeIn('slow', function() {
            $("#comments-list").html(data.responseText);
            alert(data.responseText);
        });
    }
});
4

2 に答える 2

1

代わりに関数.complete()を試すことができ.success()ます。

コード

   success: function(data){
        loading.fadeOut('slow');
        $("#comments-list").fadeIn('slow', function() {
            $("#comments-list").html(data.responseText);
            alert(data.responseText);
        });
    }

jQueryドキュメントから:

成功(データ、テキストステータス、jqXHR)

リクエストが成功した場合に呼び出される関数。この関数には 3 つの引数が渡されます。dataType パラメータに従ってフォーマットされた、サーバーから返されたデータ。ステータスを説明する文字列。jqXHR (jQuery 1.4.x では XMLHttpRequest) オブジェクト。

完全な (jqXHR、textStatus)

リクエストが終了したとき (成功およびエラーのコールバックが実行された後) に呼び出される関数。この関数には 2 つの引数が渡されます: jqXHR (jQuery 1.4.x では XMLHTTPRequest) オブジェクトと、リクエストのステータスを分類する文字列 ("success"、"notmodified"、"error"、"timeout"、"abort"、または"パーサーエラー")。

于 2012-06-23T04:02:03.163 に答える
1

理由として使用するsuccessのは、おそらく IE でエラーをスローしているためです。また、コールバックを追加しerrorて、問題の内容を確認します。たとえば、テキスト エンコーディングは、AJAX 呼び出しで一般的な IE のみのエラーです。

于 2012-06-23T04:04:47.977 に答える