[問題] ajax無法在IE6運作,但FireFox可以
不好意思
小妹是第一次寫AJAX,因為做網頁要用到其中一種功能才試著照書寫看看的...
是一個驗證資料庫是否有重複使用者帳號的程式
但是完成之後卻發現火狐可以跑
但IE6不行
查過了網路上的資料,有不少人提供方法 但試了還是不行
可以麻煩各位幫我看看嗎?
大感謝!
// 建立XMLHttpRequest物件
function getHttpRequestObject(handler) {
// 建立XMLHttpRequest物件
var httpRequest = null;
if ( window.XMLHttpRequest) {
// IE7, Mozilla, Safari等瀏覽程式
httpRequest = new XMLHttpRequest();
} else if ( window.ActiveXObject ) { // IE5, IE6
// 找出最新版MSXML剖析器
httpRequest = new ActiveXObject("Microsoft.XMLHTTP"); // Internet
Explorer
var msxmls = [ "MSXML2.XMLHttp.4.0",
"MSXML2.XMLHttp.3.0",
"MSXML2.XMLHttp",
"Microsoft.XMLHttp"];
for ( i=0; i< msxmls.length; i++ ) {
try { // 建立XMLHttpRequest物件
httpRequest = new ActiveXObject(msxmls[i]);
break;
} catch ( e ) {
return null;
}
}
}
// 指定事件處理程序的名稱
httpRequest.onreadystatechange = handler;
return httpRequest;
}
// 開啟和送出非同步請求
function makeRequest(httpRequest, url) {
httpRequest.open("GET", url, true); // 開啟
httpRequest.send(null); // 送出
}
var xmlHttp;
// 送出HTTP請求來驗證使用者名稱
function validateUser(value) {
// 建立XMLHttpRequest物件
xmlHttp = getHttpRequestObject(showUser);
if ( xmlHttp != null ) {
var url = "validateUser.asp"; // 建立URL網址
url = url + "?user=" + value;
randNo = parseInt(Math.random()*999999999);
// 新增亂數避免緩衝區問題
url = url + "&rand=" + randNo;
makeRequest(xmlHttp, url); // 建立HTTP請求
}
else {
alert ("錯誤! 瀏覽程式不支援XMLHttpRequest物件!");
return;
}
}
// 顯示使用者是否已經存在
function showUser() {
if ( xmlHttp.readyState == 4 ) {
// 取得回應
var xmlResult = xmlHttp.responseXML;
var str = xmlResult.getElementsByTagName("msg")[0];
document.getElementById("result").innerHTML =
str.childNodes[0].nodeValue;
}
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.240.186.17
推
05/30 19:55, , 1F
05/30 19:55, 1F
→
05/31 00:28, , 2F
05/31 00:28, 2F
→
05/31 00:28, , 3F
05/31 00:28, 3F
→
05/31 00:29, , 4F
05/31 00:29, 4F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):