判断请求类型

判断请求类型
在很多情况下面,我们需要判断当前操作的请求类型是GET 、POST 、PUT或 DELETE,一方面可以针对
请求类型作出不同的逻辑处理,另外一方面有些情况下面需要验证安全性,过滤不安全的请求。
系统内置了一些常量用于判断请求类型,包括:
常量说明
IS_GET 判断是否是GET方式提交
IS_POST 判断是否是POST方式提交
IS_PUT 判断是否是PUT方式提交
IS_DELETE 判断是否是DELETE方式提交
IS_AJAX 判断是否是AJAX提交
REQUEST_METHOD 当前提交类型
使用举例如下:
class UserController extends Controller{
public function update(){
if (IS_POST){
$User = M('User');
$User->create();
$User->save();
$this->success('保存完成');
}else{
$this->error('非法请求');
}
}
}
个别情况下判断AJAX请求的时候,你可能需要在表单里面添加一个隐藏域,告诉后台属于ajax方式提
交,默认的隐藏域名称是ajax(可以通过VAR_AJAX_SUBMIT配置),如果是JQUERY类库的话,则无
需添加任何隐藏域即可自动判断。
AJAX返回
ThinkPHP3.2.3快速入门
本文档使用 看云 构建 - 94 -
ThinkPHP可以很好的支持AJAX请求,系统的\Think\Controller 类提供了ajaxReturn 方法用于AJAX调
用后返回数据给客户端。并且支持JSON 、JSONP 、XML 和EVAL 四种方式给客户端接受数据,并且
支持配置其他方式的数据格式返回。
ajaxReturn方法调用示例:
$data = 'ok';
$this->ajaxReturn($data);
支持返回数组数据:
$data['status'] = 1;
$data['content'] = 'content';
$this->ajaxReturn($data);
默认配置采用JSON格式返回数据(通过配置DEFAULT_AJAX_RETURN进行设置),我们可以指定格式返
回,例如:
// 指定XML格式返回数据
$data['status'] = 1;
$data['content'] = 'content';
$this->ajaxReturn($data,'xml');
返回数据data可以支持字符串、数字和数组、对象,返回客户端的时候根据不同的返回格式进行编码后传
输。如果是JSON/JSONP格式,会自动编码成JSON字符串,如果是XML方式,会自动编码成XML字符
串,如果是EVAL方式的话,只会输出字符串data数据。
JSON和JSONP虽然只有一个字母的差别,但其实他们根本不是一回事儿:JSON是一种数据交换格
式,而JSONP是一种非官方跨域数据交互协议。一个是描述信息的格式,一个是信息传递的约定方法。
默认的JSONP格式返回的处理方法是jsonpReturn ,如果你采用不同的方法,可以设置:
'DEFAULT_JSONP_HANDLER' => 'myJsonpReturn', // 默认JSONP格式返回的处理方法
或者直接在页面中用callback参数来指定。

 

posted @ 2017-12-07 10:22  sky20080101  阅读(398)  评论(0)    收藏  举报