2015-04-01 53 views
0

我从我的API调用中获取一个对象,我试图在将JSON数据呈现给我的视图之前执行错误检查。在Ajax响应中检查错误

function response(oResponse) { 
     if(oResponse && oResponse!= null 
       && typeof oResponse === "object" && oResponse.responseCode !== null){ 
       // you're getting data in JSON 
       // Use responseCode to proceed further 
     } 
} 

下面是我JSON响应

{"code": "100", "responseCode":"444", :result: "successful"} 

我想知道是否if condition正确与否?我是否错过了一些东西,或者它是一个很大的状况。

+2

你可以发布你的AJAX调用吗?你应该在你的AJAX中有一个Error:回调函数,它应该处理所有的问题。 – snowYetis 2015-04-01 21:12:21

+0

您对有效性的要求是什么?告诉我们,我们可以告诉你,如果你错过了什么。 – 2015-04-01 21:14:46

+0

@MikeMcCaughan:我的要求是在继续操作数据之前检查是否存在oResponse并且存在oResponse.responseCode。我只是担心我是否做了很多检查。 – Shane 2015-04-01 21:16:16

回答

1

你或许可以简化条件oResponse && oResponse.responseCode如果所有你关心的是,它不是null也不undefined,它有一个responseCode属性,是不是null也不undefined

  • 校验为oResponse != null是多余的,因为null评估为false
  • 由于相同的原因,oResponse.responseCode !== null的检查是多余的。
  • typeof oResponse === "object"的检查是多余的,因为如果它是一个字符串或其他类型,它将不具有responseCode属性。

注意,如果oResponse.responseCode === 0another "falsy" value,这种情况将评估为假(即,被认为是“无效” responseCode)。

@snowYetis有关错误处理程序的注释也是一个好主意,以防万一服务器出现错误。它不会涵盖无效的成功响应的验证。

+0

你的意思是说如果(oResponse && oResponse.responseCode)足以检查null和undefined,而不是大行。对? – Shane 2015-04-01 21:22:02

+0

添加了关于falsy响应代码的警告。它应该是“足够”,也许不是“绰绰有余”:) – 2015-04-01 21:26:38

+0

啊哈哈......我相信API不会返回“0”,但如果它返回任何机会......如何处理太...我想这将是绰绰有余“如果(oResponse && oResponse.responseCode)”对不对?我很抱歉再次询问... – Shane 2015-04-01 21:29:38