2013-03-24 77 views
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 

我有上面的代码,它的工作成功,当且仅当有somethings返回。 但是,如果PHP不返回任何东西,字符串将变为:jQuery191025216468679718673_1364086240540([]);问题在阿贾克斯成功函数

我期望它转到其他部分,即警报456。但是,它会跳过整个成功函数。那么,我应该如何修改编码呢?

如果我改变了,如果子句if (result!="")

回答

3

Have a look at the console.我敢肯定,你得到像

错误,因此无法读取属性“数据”的不确定它的工作原理。

如果数组是空的,result[0]将返回undefined和随后的属性访问将导致运行时错误,立即终止脚本。首先检查数组是否为空:

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

您可能需要测试result[0].data存在为好,具体取决于数据。