open 方法是發起 HTTP 請求的關鍵步驟,它定義了請求方法、目標 URL、同步策略及認證信息。正確理解各參數含義,對構建穩健的服務端遠程調用至關重要。
oXMLHttpRequest.open(bstrMethod, bstrUrl, varAsync, bstrUser, bstrPassword)
| 參數 | 類型 | 必選 | 說明 |
|---|---|---|---|
| bstrMethod | String | 是 | HTTP 動詞:GET、POST、PUT、PROPFIND 等,不區分大小寫 |
| bstrUrl | String | 是 | 請求地址,支持相對/絕對路徑 |
| varAsync | Boolean | 否 | true(默認) 異步模式,狀態變化觸發 onreadystatechange;false 同步阻塞直到完成 |
| bstrUser | String | 否 | 基本認證用戶名,未提供時服務器彈窗詢問 |
| bstrPassword | String | 否 | 認證密碼,用戶名為空時忽略 |
onreadystatechange 回調處理響應。var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP.3.0");
xmlhttp.open("GET", "https://localhost/books.xml", false); // 同步
xmlhttp.send();
var book = xmlhttp.responseXML.selectSingleNode("//book[@id='bk101']");
alert(book.xml);
關鍵點:
Msxml2.XMLHTTP.3.0 ProgID 確保較新版本解析器。send() 返回即數據就緒,可直接操作 responseXML。selectSingleNode 快速定位節點。Msxml2.ServerXMLHTTP 組件,專為服務端設計,連接池管理更優。readyState == 4 && status == 200 雙重條件。xmlhttp.setTimeouts(resolve, connect, send, receive)(僅 ServerXMLHTTP 支持)。try...catch,記錄失敗日誌便於排查。掌握 open 方法的各參數細節,能讓你在 ASP 服務端整合第三方 API、抓取遠程資源時更加得心應手。