Javascript 客户端XMLHttpRequest问题

Javascript 客户端XMLHttpRequest问题,javascript,xml,ajax,xmlhttprequest,Javascript,Xml,Ajax,Xmlhttprequest,我试图使用XMLHttpRequest方法通过AJAX调用pull一个简单的XML文件,但它总是遇到catch块。该方法将首先对正确的电子邮件输入进行客户端验证,然后检查外部XML文件中的“禁止”电子邮件地址。有人能解释一下它为什么会失败吗?这是代码,谢谢 function validateEmail() { var email = document.forms["feedback"]["email"].value; var atpos = email.indexOf("@"); var do

我试图使用XMLHttpRequest方法通过AJAX调用pull一个简单的XML文件,但它总是遇到catch块。该方法将首先对正确的电子邮件输入进行客户端验证,然后检查外部XML文件中的“禁止”电子邮件地址。有人能解释一下它为什么会失败吗?这是代码,谢谢

function validateEmail() {

var email = document.forms["feedback"]["email"].value;
var atpos = email.indexOf("@");
var dotpos  = email.lastIndexOf(".");
var url = "ajaxtest.xml";


// validates the format of the email address
    if (atpos < 1 ||
    dotpos < atpos + 2 || 
    dotpos + 2 >= email.length){

    document.getElementById('emailmsg').innerHTML = "Gotta get this right!";
    document.forms["feedback"]["email"].focus();
    return false;
    } else {
    getXML(url)  
    } 
}
function getXML(url)  {

    try {
var request = new XMLHttpRequest();

    request.onreadystatechange = processRequest();
    request.open('GET', url, true);
    request.send(null);

}
catch ( e )
    {
    alert( 'Request Failed' );
    } 
} 
function processRequest() {

    if (request.readyState == 4 && request.status == 200) { 

    var XMLobject = request.responseXML;
var emails = XMLobject.getElementsByTagName("email");

  for (var i = 0; i < emails.length; i++)  {

      var badEmails = emails.item( i );
      var badEmail = badEmails.value;

        if (badEmail == email) {

        document.getElementById('emailmsg').innerHTML = "You are a bad man!";
        } else  {
        alert("not on the naughty list");
        }
      }
    }
}
函数validateEmail(){
var email=document.forms[“feedback”][“email”].value;
var atpos=email.indexOf(“@”);
var dotpos=email.lastIndexOf(“.”);
var url=“ajaxtest.xml”;
//验证电子邮件地址的格式
如果(atpos<1||
dotpos=电子邮件长度){
document.getElementById('emailmsg').innerHTML=“必须正确处理!”;
document.forms[“feedback”][“email”].focus();
返回false;
}否则{
getXML(url)
} 
}
函数getXML(url){
试一试{
var request=new XMLHttpRequest();
request.onreadystatechange=processRequest();
打开('GET',url,true);
请求发送(空);
}
捕获(e)
{
警报(‘请求失败’);
} 
} 
函数processRequest(){
如果(request.readyState==4&&request.status==200){
var XMLobject=request.responseXML;
var emails=XMLobject.getElementsByTagName(“电子邮件”);
对于(var i=0;i
您正在立即调用
processRequest()
。您希望将其分配给
onreadystatechange
,以便稍后调用它。为此,请删除括号:

request.onreadystatechange = processRequest;