2015-08-19 35 views
0

我是新来的AJAX和一些例子写了这个代码从互联网和得到“的ReferenceError:响应没有定义”如何在JavaScript中调试“引用错误:响应未定义”?

我的目标:在AJAX调用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)); 
    } 
}; 

回答

1

变线 request.onreadystatechange=printBands(response)request.onreadystatechange=printBands;。你只需要传递一个函数引用,而不是在那个地方执行它。

+1

它的工作..谢谢现在数据已成功发送到servlet – Mallesh

+0

不要忘记标记“接受答案”;) –