2013-04-23 78 views
0

我有一個JSON存儲從PHP腳本加載數據。這個腳本調用一個Web服務,有時會得到一些錯誤,我需要捕獲它們並在我的應用程序中顯示它們。 在我的劇本我打印這條線時,我得到一個錯誤:json響應回調加載存儲extjs

echo '{"success": "false", "error": "'.$res->state->Description.'"}'; 

在我的應用我有這樣的代碼加載店

targheStore.load({ 
          params: { targa: searchForm.getValues().targa }, 
          callback: function(records, operation, success) { 
           Ext.getBody().dom.style.cursor = "default"; 
           if(!success){ 
            $("#message2").slideDown('fast'); 
            setTimeout(function() { 
             $("#message2").slideUp('medium') 
            }, 2700); 
           } 
          } 

         }); 

jQuery代碼是顯示一個消息「沒有記錄發現「從頂部,但我想顯示我從JSON收到的錯誤信息。

回答

1

操作參數內部是請求和響應對象。使用響應對象,就像任何Ajax響應應該允許您按照自己的喜好處理消息一樣。

我建議爲處理操作聲明一個全局可用的處理程序,以查找JSON.parse(response.responseText).hasOwnProperty(「error」)並以此方式執行您的自定義操作。

如果您沒有使用JSONP進行通信,您可以將您的消息填入從HTTP錯誤代碼(400+)返回的原始文本中,並且您的ajax中的{error:}處理程序將是路由錯誤的最佳方式。

+0

YOu不應使用「error」屬性,而應使用「msg」屬性。 ExtJS使用錯誤屬性記錄驗證錯誤。 – 2013-04-25 05:08:45

+0

我建議他在responseText中尋找一個錯誤屬性 - 就像他在PHP發射器中定義的那樣。不是根本的迴應本身。 – 2013-04-25 13:30:22

+0

我知道,他仍然應該改變js部分和php部分來使用「msg」屬性。然後他會遵循Ext公約。默認情況下創建和更新請求會將驗證錯誤列表放入「error」屬性中。 – 2013-04-28 10:24:15