前端ajax
var data = $("#form").serializeArray(); $.ajax({ type:"post", url:"{:url('article/doEdit')}", data:data, dataType:'json', success:function(res){ console.log(6) console.log(res) if(res.status == 1){ layer.msg(res.msg,{ offset: '100px' }); setTimeout(function(){ window.location.href = res.url; },2000); }else{ layer.msg(res.msg,{ offset: '100px' }); captcha(); } }, error:function(XMLHttpRequest, textStatus, errorThrown){ layer.alert(XMLHttpRequest.status,{icon:2}); console.log(XMLHttpRequest.status); console.log(XMLHttpRequest.readyState); console.log(textStatus); } }); return false;
PHP后端捕获异常:
如果后端接受到的数据类型错误时,为了让ajax直观显示错误
直接使用try..catch(\Exception $e)...捕获异常直接显示给前端
public function doEdit($id = 0) { if(request()->isPost()){ $data = input('post.'); $data['update_time'] = time(); try { $result = $this->obj->allowField(true)->save($data,$data['id']); }catch (\Exception $e) { return json(['status'=>0,'msg'=>$e->getMessage()]); } if($result){ return json(['status'=>1,'msg'=>'文章更新成功','url'=>$_POST['httpref']]); }else{ return json(['status'=>0,'msg'=>'文章更新失败']); } } }