2013-03-14 105 views
-2

我正在IBM worklight中开发一个应用程序。阿贾克斯我必须连接到网站,并从中检索数据,但它给thisd错误:从IBM Worklight中的服务器数据库中检索数据

Uncaught TypeError: Cannot call method 'getElementsByTagName' of null at file:///data/data/com.Test/files/www/default/Test.html:80

我怎样才能解决这个问题?我的代码是这样的

<!DOCTYPE HTML> 



<html> 
<head> 
<script>window.$ = window.jQuery = WLJQ;</script> 
<title>Test</title> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<meta name="viewport" 
    content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0"> 
<link rel="stylesheet" href="css/Test.css"> 
<script> 
function loadXMLDoc() 
{ 
var xmlhttp; 
var txt,x,i; 
if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
else 
    {// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
xmlhttp.onreadystatechange=function() 
    { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
    xmlDoc=xmlhttp.responseXML; 
    txt=""; 
    // x=xmlDoc.getElementsByTagName("Id"); 

var table = xmlDoc.getElementsByTagName("table"); 
var tds = table.getElementsByTagName("td"); 
alert(tds); 
for (var i = 0; i < tds.length; i++) { 
    alert(tds[i].innerHTML); 
} 



    /* for (i=0;i<x.length;i++) 
     { 
     txt=txt + x[i].childNodes[0].nodeValue + "<br>"; 
     } */ 
    document.getElementById("myDiv").innerHTML=txt; 
    } 
    } 
xmlhttp.open("GET","http://www.marketing.com/msb_en.html",true); 
xmlhttp.send(); 
} 
</script> 
</head> 
<body id="content" style="display: none;"> 

<h2>MCollection:</h2> 
<div id="myDiv"></div> 
<button type="button" onclick="loadXMLDoc()">collection</button> 
<!--<input type="button" value="button name" onclick="window.open('https://www.google.com.pk')" /> --> 
    <!--application UI goes here--> 
    <script src="js/initOptions.js"></script> 
    <script src="js/Test.js"></script> 
    <script src="js/messages.js"></script> 
</body> 
</html> 

和我行80这是

var table = xmlDoc.getElementsByTagName("table"); 
+0

我在HTML中没有看到表格...因此它变为空...? – 2013-03-14 12:13:26

+0

是的...... PLZ建议我解决一些问题..但没有从我给的网址获取任何东西 – Passion 2013-03-14 12:47:30

+0

如果HTML中没有表格元素,你期望如何检索它?没有表格元素。 – 2013-03-14 12:50:10

回答

0

看起来xmlDoc中为空当您尝试使用。确保你的服务器正在返回你所期望的,并且你正在正确地访问响应中的数据。

一些建议与您的问题没有直接关系。 jQuery已经加载到您的应用程序中。您可能要考虑使用其AJAX功能,而不是直接使用XMLHttpRequest。

另外,如果您使用的是Worklight,则可以考虑使用HTTPAdapter而不是AJAX。如果您没有充分利用Worklight提供的功能,而不仅仅是浏览器编写代码,那么也许您应该查看适用于您的平台的其他选项。