2016-04-02 19 views
1

完整的新手問題:如何檢測沒有對象的響應

當我使用API​​查詢數據庫時,有時會得到一個不包含對象的響應。

下面的代碼根本沒有提醒。

我需要一種方法來檢測這種類型的空響應 - jQuery.isEmptyObject不起作用。

$.get("http://api.lmiforall.org.uk/api/v1/ashe/estimatePay", 
{ soc: soc, coarse: "false", filters:"region:12"}, 
function(datani) { 

alert(datani); 

if(jQuery.isEmptyObject(datani)) { 
alert("empty"); 

} 
+0

你得到「」提醒,或空白? –

+0

_「我有時會得到一個不包含對象的響應」_,_「我需要一種方法來檢測這種類型的空響應」_你是什麼意思的「空」?首先調用alert()? – guest271314

+0

使用上面的代碼,完全不顯示任何提示框。 – Bizzy

回答

0

使用完成的事件來識別。

<script> 
    $.get("test.php", { name: "John", time: "2pm" }) 
     .done(function(data) { 
      alert("Data Loaded: " + data); 
    }); 
</script> 
0

這聽起來像你混淆沒有迴應作爲一個空的object

喜歡的東西:

var myObj = {}; 

將被視爲一個空的對象,isEmptyObject()將爲返回true,但一個空字符串(無反應)不會

嘗試改變:

if(jQuery.isEmptyObject(datani)) { 

if(!datani) { 
+0

謝謝 - 試過這個 - 仍然沒有提示框 – Bizzy

+0

你需要調試實際的請求,並確保它是成功的。在瀏覽器開發工具網絡中檢查它 – charlietfl

0

隨着代碼上面沒有任何提示框出現。

應該調用第一個alert();不管迴應是否是客觀的。

您可以使用.fail()將錯誤處理添加到ajax請求以提醒textStatuserrorThrownjqxhr對象的屬性。

請注意,還有js問題缺失關閉})$.get()

$.get("http://api.lmiforall.org.uk/api/v1/ashe/estimatePay", 
    { soc: soc, coarse: "false", filters:"region:12"}, 
    function(datani) { 
    alert(datani); 
}).fail(function(jqxhr, textStatus, errorThrown) { 
    alert(textStatus + " " + errorThrown) 
}) 
+0

@Bizzy是否「粗略」拼寫正確?是否定義了soc?什麼是'soc'?在post後使用'js'調用'.fail()'時,alert() – guest271314

+0

感謝您的回覆。所有的變量名都是正確的。當API返回一些數據並且我的應用程序正常工作時,此代碼正常運行。但有時我的查詢會詢問不存在的數據,然後會出現此問題。 – Bizzy

+0

_「但有時我的查詢要求不存在的數據,然後出現此問題。」_您是什麼意思「發生此問題」?應該調用alert()是否響應是否爲對象;成功或返回錯誤 – guest271314

相關問題