在发送ajax请求的时候,我们可以通过XMLHttpRequest这个对象,创建自定义的header头信息,如果您使用的是原生的ajax方法,那么代码如下:
xmlHttpRequest.setRequestHeader("request_type","ajax");
通过jquery的$.ajax()方法,也可以轻松地在发送ajax请求之前,创建我们自定义的header头信息。
$.ajax({
type: "GET",
url : 'ajax.php',
beforeSend : function (XMLHttpRequest) {
XMLHttpRequest.setRequestHeader("request_type","ajax");
},
success : function(data){}
});
然后PHP中就可以判断是不是ajax请求了:
if (isset($_SERVER['HTTP_REQUEST_TYPE']) && $_SERVER['HTTP_REQUEST_TYPE'] == "ajax"){
//ajax提交
}else{
//非ajax提交
}
还有$_SERVER['HTTP_ACCEPT']可以判断请求类型。
jsonp的请求一般是:text/javascript, application/javascript, */*
json的请求:application/json, text/javascript, */*
一个简单的判断跨域条件下的ajax请求:
switch ($_SERVER['HTTP_ACCEPT']){
case 'application/json, text/javascript, */*':
// JSON 格式
break;
case 'text/javascript, application/javascript, */*':
// javascript 或 JSONP 格式
break;
case 'text/html, */*':
// HTML 格式
break;
case 'application/xml, text/xml, */*':
// XML 格式
break;
}
关键词: ajax,php 编辑时间: 2013-11-28 9:29:29