{ "success": true, //正确处理标志 "result": { "personId": 42 //返回的数据 }, "error": null, //如果发生错误,result为null,此处为错误信息的对象,包含message和details两个属性 "targetUrl": null, //可以提供一个url供客户端重定向,例如自动构建下一页的url "unAuthorizedRequest": false //是否通过了授权,如果返回true,客户端应重新登录 }
如果你继承了AbpController,Json方法返回的对象总会被这样包装,如果未发生错误,你在abp.ajax的done(function(result,data){})中,第一个参数result是{"personId": 42}对象,data是原始对象,WebApi中继承AbpApiController也是同样的机制。
错误处理(Handling errors)
返回值如下:
{ "targetUrl": null, "result": null, "success": false, //代表出现异常 "error": { "message": "An internal error occured during your request!", //未捕捉到的异常,通常为系统异常,会自动记录日志,具体提示信息在配置文件配置,可以搜索一下,如果是业务抛出的UserFriendlyException异常,message为具体的错误信息 "details": "..." //发生异常时默认会调用abp.message.error函数,你可以在abp.jquery.js修改,统一处理错误信息。 }, "unAuthorizedRequest": false }
动态WebAPI(Dynamic Web API Layer)
此处会根据Services动态生成WebAPI调用函数:
//通常我们使用ajax会按照如下写法,做一个简单的封装来重用ajax,此处框架可以帮你生成简单的调用方法 var savePerson = function(person) { return abp.ajax({ url: '/People/SavePerson', data: JSON.stringify(person) }); }; //调用时你需要构建参数 var newPerson = { name: 'Dougles Adams', age: 42 }; //直接调用方法,如何生成上面的调用方法可以参考源码中的Abp.Web.Api项目中/ WebApi/ Controllers/ Scripting/ jQuery下的实现 savePerson(newPerson).done(function(data) { abp.notify.success('created new person with id = ' + data.personId); });
您可能感兴趣的文章: