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,否则是普通提交。

参考技术A 第一种方式:
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表单的按钮提交后,验证码一直错误!如何解决?

thinkphp 注册验证

thinkPHP5配置nginx环境无法打开(require(): open_basedir restriction in effect. File(/mnt/hgfs/root/tp5/thinkp

THINKPHP__THINKPHP6接收ajax下拉菜单提交的数据,存在的bug

thinkphp3.2 请求怎么发送 put

thinkphp 判断请求类型