2015-08-19 62 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

不要忘記標記「接受答案」;) –