3.1對AJAX的支持更加完善了,表現在:
判斷AJAX方式改進
現在可以直接使用常量IS_AJAX來判斷是否AJAX方式請求,用來取代之前的Action類的isAjax方法,優勢是可以在任何代碼里面進行判斷。而Action類的error和success方法內置就支持對AJAX自動判斷支持。
ajaxReturn方法完善
原來的ajaxReturn方法只能返回固定結構的數據,包括data、status和info索引信息,如果需要擴展額外的返回數據信息,只能通過ajaxAssign方法,3.1版本改進了ajaxReturn方法本身,可以更好的支持ajax數據擴展,例如:
$data['status'] = 1;
$data['info'] = '返回信息';
$data['data'] = '返回數據';
$data['url'] = 'URL地址';
$this->ajaxReturn($data);
data傳值數組可以隨意定義。
改進后的ajaxReturn方法也兼容之前的寫法,例如:
$this->ajaxReturn($data,'info',1);
系統會自動把info和1兩個參數并入$data數組中,等同于賦值
$data['info'] = 'info';
$data['status'] = 1;
$data['data'] = $data;
$this->ajaxReturn($data);
但這種用法不再建議使用了。
success和error方法完善對ajax支持
如果是ajax方式下面,Action類的success和error方法都做了改進支持,這兩個方法的參數會轉換成ajaxReturn方法的data數據的info、status和url參數。還可以支持傳入其他的參數,有兩種方式支持ajax傳值。以success方法為例,第一種方式是直接傳入ajax數據
$data['code'] = 200;
$data['name'] = 'ThinkPHP';
$this->success('成功提示信息','跳轉地址',$data);
或者采用
$this->assign('code',200);
$this->assign('name','thinkphp');
$this->success('成功提示信息','跳轉地址');
最終返回給客戶端的ajax數據信息是一個數組,包括name、code、info、status和url。