《javascript DOM编程艺术》里最后一章关于Ajax提交表单的异步成效

《javascript DOM编程艺术》里最后一章关于Ajax提交表单的异步效果
不知道有没有人实现过书里最后一章的Ajax部分的异步效果?我试了两次都没能成功,有谁实现过的麻烦告诉一下。能把那部分的代码直接贴一下的话就行:)或者你看一下我的(我用IE试了在request.open语句报错:拒绝访问),看代码部分是不是有什么问题。先谢过各位了:)


代码如下:
function getHTTPObject(){
if (typeof XMLHttpRequest == "undefined")
XMLHttpRequest = function(){
try{ return new ActiveXObject("Msxml2.XMLHTTP.6.0");}
catch(e){}
try{ return new ActiveXObject("Msxml2.XMLHTTP.3.0");}
catch(e){}
try{ return new ActiveXObject("Msxml2.XMLHTTP");}
catch(e){}
return false;
}
return new XMLHttpRequest();
}
function displayAjaxLoading(element){
while (element.hasChildNodes()){
element.removeChild(element.lastChild);
}
var content = document.createElement("img");
content.setAttribute("src","images/loading.gif");
content.setAttribute("alt","加载中……");
element.appendChild(content);
}
function submitFormWithAjax(whichform,thetarget){
var request = getHTTPObject();
if (!request) return false;
displayAjaxLoading(thetarget);
var dataParts = [];
var element;
for(var i = 0;i<whichform.elements.length;i++){
element = whichform.elements[i];
dataParts[i] = element.name + '=' + encodeURIComponent(element.value);
}
var data = dataParts.join('&');
request.open('POST',whichform.getAttribute("action"), true);
request.setRequestHeader("Content-type","application/x-www-form-urlencoded");
request.onreadystatechange = function(){
if (request.readyState == 4){
if (request.status == 200 || request.status == 0){
var matches = request.responseText.match(/<article>([\s\S]+)<\/article>/);
if (matches.length > 0){
thetarget.innerHTML = matches[1];
}else{
thetarget.innerHTML = '<p>Oops,there was an error,Sorry.</p>';
}
}else{
thetarget.innerHTML = '<p>' + request.statusText + '</p>';
}
}
};
request.send(data);
return true;
};

function prepareForms(){
for (var i = 0;i<document.forms.length;i++){
var thisform = document.forms[i];
resetFields(thisform);
thisform.onsubmit = function(){
if (!validateForm(this)) return false;
var article = document.getElementsByTagName("article")[0];
if (submitFormWithAjax(this,article)) return false;
return true;
}
}
}


------解决思路----------------------
IE用XMLHttpRequest创建时要发布网站访问,直接拖进浏览器看不能请求本地文件
IE XMLHTTpRequest access is denied