一般处理ajax 回应时会传送的信息种类有:数据、成功信息、错误信息、失败信息以及处理状态,传递的信息种类并不一致,再加上除了数据之外,通常还希望能传递处理状态,这种情况大部分会选择是以json 的方式传递这两个信息,以下是常见的几种格式:
但以执行状态跟操作行为作一个归纳,可以区分以下几种传递结果:
{ code: 1, msg: ok } { success: true , result: data , errormsg: } { status: 'success' , result: [], errormsg: } //...
但以执行状态跟操作行为作一个归纳,可以区分以下几种回传结果:
数据操作 http method 成功 错误/失败
读取(read) get 数据 错误/失败信息
新增 (create) post 成功信息 错误/失败信息
修改 (update)
删除 (delete)
从上面的归纳可以看出规律性,接着只要有方法可以传送处理的状态,以及能够区分数据的种类,其实就单纯很多,而http status codes 就是用来传递http 的处理状态,如果利用这个方式来传递自定义的处理状态,这样http content 就可以很单纯传递数据,让数据格式不受限于json,还可以使用其他格式(text, xml, html),而且xmlhttprequest 本身就有处理http status codes 的能力,而jquery.ajax 也有提供error status 的处理,所以可以利用这个来定义状态的处理,在http status codes 有几个已经定义状态,很适合用来传递处理状态的信息:
400bad request错误的请求适用在表单内容的错误,如必填栏位未填、email 格式错误
403forbidden没有权限,被禁止的适用在没有登录或权限不足
500internal server error内部服务器错误适用在程序的错误
jquery 接收信息的范例,代码如下:
$.ajax({ type: post , url: document.location, success: function (data, textstatus, jqxhr) { alert(data); }, error: function (jqxhr, textstatus, errorthrown) { alert(jqxhr.responsetext); } });
php 传递错误信息的范例,代码如下:
if (php_sapi_name() == 'cgi' ){ header ( status: 400 bad request ); } else { header ( http/1.0 400 bad request ); }exit ( 储存失败!! );
c# mvc 传递错误信息的范例,代码如下:
response.tryskipiiscustomerrors = true ; response.statuscode = 400; return content( 储存失败!! );
文章链接:
随便收藏,请保留本文地址!