-2

IBM worklight でアプリを開発しています。Ajax で Web サイトに接続し、そこからデータを取得する必要がありますが、次のエラーが発生します。

キャッチされていない TypeError: file:///data/data/com.Test/files/www/default/Test.html:80 で null のメソッド 'getElementsByTagName' を呼び出せません

どうすれば修正できますか?私のコードはこれです

<!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");
4

1 に答える 1

0

使用しようとすると、xmlDocがnullのように見えます。サーバーが期待どおりの結果を返していること、および応答のデータに適切にアクセスしていることを確認してください。

あなたの質問に直接関係のないいくつかの提案。jQueryはすでにアプリにロードされています。XMLHttpRequestを直接使用するのではなく、AJAX機能の使用を検討することをお勧めします。

また、Worklightを使用している場合は、AJAXの代わりにHTTPAdapterを一緒に使用することを検討できます。Worklightが提供する機能をブラウザ以外の機能を利用してコードを記述していない場合は、プラットフォームの他のオプションを検討する必要があります。

于 2013-03-14T19:18:21.663 に答える