jQuery 如何区分正常 Json 和错误信息 Json?

2016-07-14 16:27:31 +08:00
 KyL

我有一个 URL 返回 Json ,

如果成功,则返回正常 Json 格式

[
	{id:"1", code:"123"},
    {id:"2", code:"456"}
]

如果错误,则返回报错 Json 格式

[
	{error_code:"676", error_msg:"this is an error"}
]

请问 jquery 应该如何区分这两种情况呢? 还是有其他的一些常用的设计思路?本人刚接触 JS ,求教。

2095 次点击
所在节点    问与答
11 条回复
zdhxiong
2016-07-14 16:30:53 +08:00
if(typeof data.error_code === 'undefined'){
//正常
}
shyling
2016-07-14 16:33:59 +08:00
if(single.error_code){
//error
}
baby4free
2016-07-14 16:34:56 +08:00
建议统一消息格式。
{
code: 200,//表示成功,其他 code 都不成功
result: {},//正确的返回内容
errormsg:''//错误信息提示
}
crysislinux
2016-07-14 16:37:52 +08:00
http header 错误了就传回 4xx ,这种情况 ajax 的 callback 不会走跟 2xx 的一样的路线。
kiwi95
2016-07-14 16:48:46 +08:00
API 的返回要统一格式,都加一个状态吗和消息字段,数据放到一个单独的键
mkeith
2016-07-14 17:15:54 +08:00
@crysislinux api 错误最好还是不要和 http 错误混起来用吧
bdbai
2016-07-14 17:24:51 +08:00
@mkeith 按照 REST 的说法,应该把 HTTP 错误当成资源错误。
BOYPT
2016-07-14 17:34:35 +08:00
先不争论 http 错误是否应该和业务错误混起来;

$.ajax()
.done(function(ret){ // ret is json })
.fail(function(xhr){ var json = JSON.parse(xhr.responseText); }));
bdbai
2016-07-14 17:41:32 +08:00
@BOYPT 不混起来的话,不管成功与否都会返回 2xx ,被 done 处理。
iyangyuan
2016-07-14 18:48:39 +08:00
格式不标准造成的困扰
sunjourney
2016-07-15 00:59:40 +08:00
Json 放到 response body 里,错误看状态码

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/292515

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX