ReferenceError无法找到变量createXMLHTTPRequestObject

时间:2016-07-06 16:12:46

标签: javascript

我有一个带有提交按钮的简单输入框,当单击该按钮时,会向服务器端PHP发出XHR请求以获取一些信息。在最简单的形式中,标记看起来像这样:

<input type="text" id="word" class="form-control input-lg lookup-field" placeholder="Enter a Spanish or English word" oninput="deleteicon();" required>
<button class="btn btn-lg btn-brown lookup-submit" type="submit" id="lookup">Lookup</button>

按钮的onclick事件会触发执行XHR请求的功能:

$('#lookup').click(function(){ testlookup($('#word').val()); return(false); });

testlookup()功能如下:

function testlookup(lookupword){
    var mean = document.getElementById('meaning');
    var waittext = '<div id="loading text-center"><i class="fa fa-4x fa-spinner fa-spin"></i></div>';
    var hr = createXMLHTTPRequestObject();
    var url = '/assets/engines/dictengine.php';
    var vars = "lookup_word=" + lookupword;
    document.getElementById('word').value = lookupword;
    hr.open("POST", url, true);
    hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    hr.onreadystatechange = function(){
        if(hr.readyState == 4 && hr.status == 200){
            var return_data = hr.responseText;
            mean.innerHTML = return_data;
        else if(hr.status == 500){ mean.innerHTML = "Something went wrong! Please try again later..."; }
    }
    hr.send(vars);
    mean.innerHTML = waittext;
}

我不明白为什么这应该拒绝工作,并且真的很感激一些帮助看到这个问题。每次我在输入框中输入一个值并单击按钮时,控制台会短暂闪烁一个&#34; 找不到变量createXMLHTTPRequestObject &#34;浏览器继续使用&#34;?&#34;刷新页面之前的错误附加到URL。这可能是什么问题,为什么&#34;?&#34;如果我已经使用 return(false)语句正式终止了我的onclick函数,那么会附加到URL吗?

该代码在peppyburro.com/test-dictionary上实现。

1 个答案:

答案 0 :(得分:1)

您正在尝试调用名为createXMLHTTPRequestObject的函数,但它不存在。 JS抛出异常并且永远不会到达return (false)语句。