3.1.1 xmlhttp request (XHR)

何謂XMLhttp?

由於微軟發現iframe的重要性,所以建立一個前端和後端互動可以更好,且由ActivX所做的工具就稱為XMLHttp

微軟的MSXML裡面包含了XMLHttp的物件,它不只可以產稱XML文件,還可以用JavaScript來控制特殊的Http請求,但是對於原本的隱藏式frame和iframe而言, XMLhttp不用反覆的重新載入頁面,而把對伺服器的溝通透過JavaScript來執行

而在Mozilla的瀏覽器上,開發人員將XMLhttp複製成自己的JavaScript物件,就稱為XMLhttpRequest

,到後來Opera,Safari甚至連微軟的IE7也使用了 XMLhttpRequest,其中所用的變數就稱為XHR變數

,但是XHR並沒有打破不能跨網域區得資料的限制,若要跨網域取得其他資料來源則必須要透過代理伺服器的程式來取得

XHR的優點

  1. 簡化了原本使用隱藏式frame的程式碼,使得程式碼變得更簡潔
  2. 不用每次有新的資料更新就整個頁面重新載入

XHR的缺點

  1. 無法分辨上一頁和下一頁,也就是說當使用者岸上一頁和下一頁時,與XHR的請求並無法連繫,而造成上一頁和下一頁無法分辨的窘境
  2. 使用者若在瀏覽器上設定安全限制,XHR的物件可能就無法執行

XMLHttpRequest的方法

  方法  說明
 abort()  停止目前正在處理的要求
 getAllResponseHeaders()  以字串的形式,傳回完整的
http標頭
 getResponseHeader(label)  根據變數的label的指示,傳
回相關的http標頭

open(method,URL,asyncFlag,
usemame,password)

根據method 與url參數,開啟
並建立http要求。asyncFlag變數可以是true或false,tru
e代表建立非同步要求。username與password變數
則是用來存取受保護的http資源
 send(content)  執行http要求,其中的
content變數代表要送的資料
 setRequestHeader(label,value)

在建立http要求之前,指派
http標頭

 reference:ajax 網頁程式設計最佳方案