前端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'=>'文章更新失败']);
}
}
}