Laravel的JsonResponse函数返回后前台处理代码

来源:互联网 发布:办公室网络拓扑图 编辑:程序博客网 时间:2024/05/20 15:41

在前一篇文章里介绍了手动设置Laravel的Ajax返回,现在再来介绍一些前台处理代码.

情况1:Ajax提交表单后验证失败

这是经常发生的情况,所以特别记录在此.这里分两种情况.

  • _token验证失败
  • 表单字段验证失败

这里先看一下返回的数据格式:

这里写图片描述

其中有两个重点:

  • responseJSON
  • state

其中responseJSON保存着后台返回的错误提示信息的JSON对象,而在其之下的responseText则是字符串类型.

state则是为了能辨别出错误的类型,_token验证失败的返回状态码是500,且返回的responseJSON是Laravel的错误提示页面,而一般字段验证失败(未人为修改返回状态码的情况下),返回状态码是422.所以当返回状态码是500的时候,我们不能直接输出后台响应,而是人为修改显示信息,比如alert("页面发生错误,请刷新重试");这里着重介绍第二种,即422的返回情况.

其实也就是一个js处理json对象的方式:

//这里直接写Ajax请求错误时执行的函数,即error:后执行的函数function handleError(response){    var responseJSON=response['responseJSON'];    for(var fieldName in responseJSON){        // 这里直接输出后台显示的错误信息        alert(responseJSON[fieldName]);    }}

重点就是for函数对JSON对象的循环.这里顺道再说一句fieldName的内容就是字段的名称,像email password之类的.

情况2:请求正确

这个时候假设后台返回的信息是这样的:

return new JsonResponse(array('message'=>"数据已正确保存"),200);

这里的200返回码可以不输入的,默认是200.后台这样返回之后,前台的处理就比较简单了.先看一下返回给前台的数据格式:

这个时候读取值就很方便了:

// 这里是编写Ajax返回正确后执行的函数,即success:function handleSuccess(response){    // 直接读取JSON中的字段即可    var responseMessage=response.message;    alert(responseMessage);}
阅读全文
0 0
原创粉丝点击