首先說說原理:
在發送ajax請求的時候,我們可以通過XMLHttpRequest這個對象,創建自定義的header頭信息
如果您使用的是原生的ajax方法,也就是未使用jquery或者其他js框架包裝的ajax方法,那么代碼如下:
1
|
xmlHttpRequest.setRequestHeader(
"request_type"
,
"ajax"
);
|
哦~對了,您一定知道xmlHttpRequest這個對象是怎么創建的吧?額?您沒開玩笑吧?您不知道–那我勸您還是不要了解了,放心吧~您對他不了解也沒事,下面我來告訴你怎么在jquery中使用,那是更加的簡單啊~~
通過jquery的$.ajax()方法,可以輕松地在發送ajax請求之前,創建我們自定義的header頭信息。
1
2
3
4
5
6
7
8
9
10
11
12
|
$.ajax({
type :
"GET"
,
url : base_url +
'php_check_ajax_request/get_user_list.html'
,
beforeSend :
function
(XMLHttpRequest) {
XMLHttpRequest.setRequestHeader(
"request_type"
,
"ajax"
);
},
success :
function
(data){
$(
"#user_list"
).html(data);
$tip.hide();
$button.attr(
'disabled'
,
true
);
}
});
|
上面的代碼,是我的demo中用到的代碼,有好幾行吧,您別怕,要您注意的就是一個地址,找到了beforeSend了吧?對了,就是那里了,XMLHttpRequest.setRequestHeader(“request_type”,”ajax”);這一句代碼就是向header頭信息里面創建了一個我們自定義的一個變量“request_type”。
恩~~說到這里,大家應該已經會在發送ajax請求前往header頭信息中加入自定的信息了吧。
接下來我來告訴大家如果在php中取得這個信息,也是相當簡單呀
如我之前定義的那個變量“request_type”,那么在php中就應該這樣取得
1
|
$_SERVER
[
'HTTP_REQUEST_TYPE'
]
|
看了上面的代碼之后,我想如此睿智的您一定已經發現規律了吧,對了,沒錯,就是將“request_type”這個變量全部大寫(一定要大寫),然后再加上一個“HTTP_”前綴,然后再$_SERVER這個超級變量中找就可以了。
1
2
3
|
if
(isset(
$_SERVER
[
'HTTP_REQUEST_TYPE'
]) &&
$_SERVER
[
'HTTP_REQUEST_TYPE'
] ==
"ajax"
){
//ajax提交
}
else
{
//非ajax提交
}
|
上面的代碼就是在php程序中判斷請求到底是不是ajax請求了。
“request_type”這個變量是我們自定義的哦,如果您喜歡的話,您也可以將她換成你所喜歡的名字,比如“test”,“is_ajax”…….
基於以上的說明~~大家是否明白了呢?
呵呵~~不明白的也沒關系~~因為您可以稍微動動您的手指,留下您的疑問吧~
轉載自夢三秋