0
$.ajax({
    type: "GET",
    dataType: "jsonp",
    jsonp: "jsoncallback",
    data: {
        //some data
    },
    url: "http://mydomain.com/checkRequest.php?jsoncallback=?",
    success: function (result) {
        if (result[0].data.NameB == "") {
            alert("123");
        } else {
            alert("456");
        }
    },
    error: function (jqXHR, textStatus) {
        alert("Request failed: " + textStatus);
    }
}); // end of ajax

私は上記のコードを持っています。何かが返された場合にのみ正常に動作します。ただし、PHP が何も返さない場合、文字列は次のようになります。 jQuery191025216468679718673_1364086240540([]);

そして、456を警告するelseの部分に行くと思っていました。しかし、成功関数全体をスキップします。では、コーディングをどのように変更すればよいでしょうか。

if 句を次のように変更すると機能しますif (result!="")

4

1 に答える 1

3

コンソールを見てください。次のようなエラーが表示されると確信しています

未定義のプロパティ「データ」を読み取れません。

配列が空の場合、result[0]が返さundefinedれ、その後のプロパティ アクセスによって実行時エラーが発生し、スクリプトがすぐに終了します。最初に配列が空かどうかを確認します。

if (result.length > 0 && result[0].data.NameB == "")

result[0].dataデータによっては、の存在もテストする必要がある場合があります。

于 2013-03-24T00:57:17.910 に答える