繁体   English   中英

如何在JavaScript中调试“ Referenceerror:未定义响应”?

[英]How to debug “Referenceerror: response is not defined” in JavaScript?

我是AJAX的新手,并通过互联网上的一些示例编写了此代码,并收到“ Referenceerror:未定义响应”

我的目标:单击按钮(搜索)后,AJAX调用一个servlet,该servlet将选择框和文本框值旁边作为输入,并从数据库中搜索所需的数据,并以JSON格式提供结果。

然后,处理JSON对象并将其作为表格打印到网页上存在的空div中。

$(document).ready(function() 
{

    $("#search").click(function(event) 
    {
          var selectedKey = $(".skey option:selected").val();
          var insertValue = document.getElementById('svalue').value;
          alert(selectedKey+":"+insertValue);
          var url="SearchDetails?"+selectedKey+"="+insertValue
          var request; 
           if(window.XMLHttpRequest)
           {
                request=new XMLHttpRequest()
           }
           else if(window.ActiveXObject)
           {
                request=new ActiveXObject("Microsoft.XMLHTTP")
           }
           try
           {
               request.onreadystatechange=printBands(response)
               request.open("GET",url,true)
               request.send()
           }
           catch(e)
           {
               alert("Unable to connect to server"+e)
           }
    });
});

function printBands(json) 
{
    if(request.readyState==4)
    {
        var mydata = eval(json);
        var table = $.makeTable(mydata);
        $(table).appendTo("#resultPrint");
    }
    $.makeTable = function (mydata) 
    {
        var table = $('<table border=1>');
        var tblHeader = "<tr>";
        for (var k in mydata[0]) tblHeader += "<th>" + k + "</th>";
        tblHeader += "</tr>";
        $(tblHeader).appendTo(table);
        $.each(mydata, function (index, value) 
        {
            var TableRow = "<tr>";
            $.each(value, function (key, val) 
            {
                TableRow += "<td>" + val + "</td>";
            });
            TableRow += "</tr>";
            $(table).append(TableRow);
        });
        return ($(table));
    }
};

将行request.onreadystatechange=printBands(response)更改为request.onreadystatechange=printBands; 您只需要传递对函数的引用,而无需在该位置执行它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM