thinkphp 验证是否ajax提交
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了thinkphp 验证是否ajax提交相关的知识,希望对你有一定的参考价值。
有两种方式,如下:
第一种方式:
php判断ajax请求的原理:
在发送ajax请求的时候,我们可以通过XMLHttpRequest这个对象,创建自定义的header头信息, 在jquery框架中,对于通过它的$.ajax, $.get, or $.post方法请求网页内容时,它会向服务器传递一个HTTP_X_REQUESTED_WITH的参数,php中就是在header一层判断是否是ajax请求,对应的根据$_SERVER[\'HTTP_X_REQUESTED_WITH\']判断。
/**
* 当前请求是否ajax请求
*
* @access public
* @return bool
*/
function isAjax()
return isset($_SERVER[\'HTTP_X_REQUESTED_WITH\']);
注意:
● 一般情况下$_SERVER[\'HTTP_X_REQUESTED_WITH\']默认是XMLHttpRequest
● $_SERVER[\'HTTP_X_REQUESTED_WITH\']也可以自定义创建的,使用XMLHttpRequest.setRequestHeader(name,value);参考文章:http://www.skygq.com/2011/01/04/php-check-request-from-ajax-or-normal/
第二种方式:
通过前台给php传一个type参数来判断,type=1则是ajax,否则是普通提交。
PHP判断ajax请求的原理:
在发送ajax请求的时候,我们可以通过XMLHttpRequest这个对象,创建自定义的header头信息, 在jquery框架中,对于通过它的$.ajax, $.get, or $.post方法请求网页内容时,它会向服务器传递一个HTTP_X_REQUESTED_WITH的参数,php中就是在header一层判断是否是ajax请求,对应的根据$_SERVER['HTTP_X_REQUESTED_WITH']判断。
/**
* 当前请求是否ajax请求
*
* @access public
* @return bool
*/
function isAjax()
return isset($_SERVER['HTTP_X_REQUESTED_WITH']);
注意:
● 一般情况下$_SERVER['HTTP_X_REQUESTED_WITH']默认是XMLHttpRequest
● $_SERVER['HTTP_X_REQUESTED_WITH']也可以自定义创建的,使用XMLHttpRequest.setRequestHeader(name,value);参考文章:http://www.skygq.com/2011/01/04/php-check-request-from-ajax-or-normal/
第二种方式:
通过前台给php传一个type参数来判断,type=1则是ajax,否则是普通提交本回答被提问者采纳 参考技术B
你是要验证啥?
验证码吗?
thinkPHP有专门的验证码机制。
你可以前端form表单提交或者直接发ajax都行
参考技术C 可以用,可以不用。以上是关于thinkphp 验证是否ajax提交的主要内容,如果未能解决你的问题,请参考以下文章
thinkPHP3.2.3利用Ajax前台实现验证码验证,但通过form表单的按钮提交后,验证码一直错误!如何解决?
thinkPHP5配置nginx环境无法打开(require(): open_basedir restriction in effect. File(/mnt/hgfs/root/tp5/thinkp