getXMLHTTP () проблема - PullRequest
       3

getXMLHTTP () проблема

1 голос
/ 22 сентября 2010

У меня есть следующий код:

<script type="text/javascript" language="javascript">
<!--
function getXMLHTTP() { //function to return the xml http object
        var xmlhttp=false;    
        try{
            xmlhttp=new XMLHttpRequest();
        }
        catch(e)    {        
            try{            
                xmlhttp= new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch(e){
                try{
                req = new ActiveXObject("Msxml2.XMLHTTP");
                }
                catch(e1){
                    xmlhttp=false;
                }
            }
        }

        return xmlhttp;
    }

    function wait1()
    {
        document.getElementById('comment').innerHTML="Please wait...";    
    }

    function getComment(strURL) {        

        var req = getXMLHTTP();

        if (req) {

            req.onreadystatechange = function() {
                if (req.readyState == 4) {
                    // only if "OK"
                    if (req.status == 200) {                        
                        document.getElementById('comment').innerHTML=req.responseText;                        
                    } else {
                        alert("There was a problem while using XMLHTTP:\n" + req.statusText);
                    }
                }                
            }            
            req.open("GET", "comment_form.php", true);
            req.send(null);
        }

    }
//-->
</script>

    <div id="comment">
<form  action="javascript:get(document.getElementById('comment'));wait1()" method="post" enctype="multipart/form-data" >
<input type="submit" name="Submit" value="Post Your Comment" />
</form>
</div>

Я уверен, что я использовал то же самое в прошлом, работал гладко, но теперь, похоже, не работает.Я думаю, что-то там запутано, но не в состоянии разобраться.

Я был бы благодарен, если бы нашел решение.

1 Ответ

0 голосов
/ 22 сентября 2010

Единственная ошибка в приведенном выше коде, которую я обнаружил, заключалась в следующем: функция getComment (strURL) принимает аргумент, который никогда не используется.Вместо этого "comment_form.php" следует заменить аргументом функции.И, поскольку программное обеспечение является программным обеспечением, я переименовал strURL в более легкий для чтения и написания "url".

(то, что DIV представлен как открытый, но не закрытый, является оплошностью форматирования, я беруэто. Функция wait1 и здесь не используется.)

Нет необходимости добавлять устаревший атрибут «language» в тег SCRIPT или оборачивать любой код JS в комментарии HTML.

function getXMLHTTP() {
    var x = false;
    try {
        x = new XMLHttpRequest();
    }
    catch(e) {
        try {
            x = new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch(ex) {
            try {
                req = new ActiveXObject("Msxml2.XMLHTTP");
            }
            catch(e1) {
                x = false;
            }
        }
    }
    return x;
}

/* TODO: Where is this ever used? */
function wait1() {
    document.getElementById('comment').innerHTML = "Please wait...";
}
function getComment(url) {
    var req = getXMLHTTP();
    if (!req) {
        // Complain early, instead of nesting deeply
        alert('Unable to set up the XHR object.'); 
        return;
    }
    req.onreadystatechange = function() {
        if (req.readyState == 4) {
            // only if "OK"
            if (req.status == 200) {
                document.getElementById('comment').innerHTML = req.responseText;
            } else {
                alert("There was a problem while using XMLHTTP:\n" + req.statusText);
            }
        }
    };
    req.open("GET", url, true); // the "true" stands for "async", when is this not default?
    req.send(null); // do not add any content (null); when is this not default?
}

Я добавил несколько вопросов к коду.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...