异步请求
异步请求包含POST,ajax等多种请求方式,系统会自动进行异步验证(csrf)
及处理
程序中响应方法和同步请求保持一致,返回$this->error()
会自动和同步请求作区分,返回json数据
// http://www.billge.cc/test/demo3 public function action_demo3 ()- {
$ret =array ('result' =>1);//返回 json {"flag": true, "ret": {"result": 1}} return $this ->correct ($ret );//返回 json {"flag": false, "error": {"result": 1}} return $this ->error ($ret );- }
框架提供了一整套csrf验证
机制,默认开启
,可通过在Action中将$csrfValidate = false
关闭。
// http://www.billge.cc/test/ class testActionextends baseAction- {
//关闭csrf验证 protected $csrfValidate =false ;//默认路由index public function action_index ()- {
//返回 test/test.tpl.php return $this ->correct ();- }
- }
当csrf验证开启时,前端ajax请求需要预先加载引用/static/js/main.js
文件,ajax提交时,系统会自动加上验证字段。
POST请求同样也会触发csrf验证,需要在form中添加如下数据字段:
// 加在form中提交 <input type="text " name="_csrf " hidden value="<?= $this ->getCsrfToken ()?> "/>
同样也可以在js中获取(前提是引用/static/js/main.js
JS文件),加在POST参数中即可。
var _csrf =getCookie ('csrf-token' );