XMLHttpRequest メソッドを使用して AJAX で単純な 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");
}
}
}
}