關於是否為Ajax請求的判斷
阿新 • • 發佈:2019-02-13
在寫Ajax程式碼中,由於IE和火狐瀏覽器建立方法不同,因此一般需要在前端中寫兩種建立一種是IE的ActiveXObject,還有一種是火狐的XMLHttpRequest,具體實現方法如下:
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
我最近在看專案底層程式碼中發現底層Controller類中對是否是Ajax的請求如下程式碼:public boolean isAjax() {
String header = getRequest().getHeader("X-Requested-With");
boolean isAjax = "XMLHttpRequest".equalsIgnoreCase(header);
return isAjax;
}
我就想不同瀏覽器建立的Ajax的請求頭“X-Requested-With”中的內容是否一樣,於是在程式碼中加入syso輸出項,在用IE和谷歌分別測試相關模組的程式碼後發現輸出的內容是一樣的,因此可以用此方法確定請求是否為Ajax。
當然,如果在不確定的情況下,也可以在前端程式碼中設定自定義的Ajax的請求頭,這裡就不在貼出相關程式碼了。