2013-04-23 82 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