很多站长朋友们都不太清楚php是否ajax,今天小编就来给大家整理php是否ajax,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 PHP如何判断一个请求是否来源于本域并且是ajax请求? 2、 使用php和ajax实现登录 3、 thinkphp 验证是不是ajax提交 4、 thinkphp中怎么用ajax 5、 PHP如何判断是否为AJAX请求 PHP如何判断一个请求是否来源于本域并且是ajax请求?通过请求头的Referer属性可以获取来源,X-Requested-With属性(不代表ajax一定需要这个请求头属性)可以判断是否是ajax。但是请求头这种东西,也知道的,很容易伪造。如果仅仅是做业务上的判断,请求头就够了。
使用php和ajax实现登录这个问题很简单,我先给你梳理下登录的逻辑
登录页面:用ajax把用户名和密码通过post方法提交到php脚本
php脚本处理:通过$_POST接受传过来的参数,进行验证正确性,如果正确,把用户信息存入session,并输出success结果,ajax的回调函数知道结果。错误一样处理。
另外,ajax用jquery封装好的函数$.post 或$.ajax吧,学会用插件用库才是王道,实际工作基本不用原生去写,麻烦还得考虑兼容。
不会的先查,如果具体还不知道代码咋实现可以追问我
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);参考文章:
第二种方式:
通过前台给php传一个type参数来判断,type=1则是ajax,否则是普通提交。
thinkphp中怎么用ajaxthinkphp中使用ajax很简单.主要掌握的地方有三个.
第一.tp中ajax的url需要使用大U方法.比如:$.post("{:U('User/add')}")
第二.控制器中返回结果得第一种方法.$this->error('失败','',true); 第三个参数为true.则发挥的是json数据.包含info.status.url三项.
第三.控制器中返回结果的第二种方法.$this->ajaxReturn(array('customKey1'=>'customValue1','customKey2'=>'customValue2','customKey3'=>'customValue3')).
掌握以上三点和ajax基本使用方法.那么在tp中使用ajax也就掌握了.简单的例子如下.伪代码,或许有错.
模板中:
<script>
$.post("{:U('User/add')",{uname:xiaoming,age:15},function(data){
//data接收返回数据
if(data.status == 1){
alert(data.info);
location.href = data.url;
}else{
alert('错误');
}
});
</script>
控制器中:
public function add(){
if(IS_AJAX){
$name = I('post.name','','trim');
$age = I('post.age','','trim');
if($name $age){
//插入数据
$this->success('添加成功',U('User/index'),true);
}else{
$this->ajaxReturn(array(
'status' => 0,
'info' => '大爷,您没输入名字',
'url' => U('User/add')
));
}
}else{
return false;
}
}
大概就是这样子.至于剩下的$.ajax.$.getJson等等都是一样的道理
PHP如何判断是否为AJAX请求<span style="font-size:18px;">/**
* 是否AJAX请求
* @access protected
* @return bool
*/
protected function isAjax() {
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) ) {
if('xmlhttprequest' == strtolower($_SERVER['HTTP_X_REQUESTED_WITH']))
return true;
}
if(!empty($_POST[C('VAR_AJAX_SUBMIT')]) || !empty($_GET[C('VAR_AJAX_SUBMIT')]))
// 判断Ajax方式提交
return true;
return false;
}</span>
关于php是否ajax的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php是否ajax php是否可以获取用户真实ip的详细内容...