1. 程式人生 > >關於是否為Ajax請求的判斷

關於是否為Ajax請求的判斷

在寫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的請求頭,這裡就不在貼出相關程式碼了。