先說前端使用 jQuery 時怎么區分:
jQuery 發出 ajax 請求時,會在請求頭部添加一個名為 X-Requested-With 的信息,信息內容為:XMLHttpRequest
在后端可以使用 $_SERVER["HTTP_X_REQUESTED_WITH"] 來獲取。(注意:中划線換成了下划線,不區分大小寫)
由此,我們可以這樣來判斷是否為 ajax 請求:
if(isset($_SERVER["HTTP_X_REQUESTED_WITH"]) && strtolower($_SERVER["HTTP_X_REQUESTED_WITH"])=="xmlhttprequest"){
// ajax 請求的處理方式
}else{
// 正常請求的處理方式
};
在使用原生 JavaScript 發出 ajax 請求時,我們也可以給頭部添加信息,以方便后端同學進行區分,方法如下:
var xmlhttp=new XMLHttpRequest();
xmlhttp.open("GET","test.php",true);
xmlhttp.setRequestHeader("X-Requested-With","XMLHttpRequest");
xmlhttp.send();
