3

XML コンテンツ (サーバー側) を含む php ページから responseXML を取得しようとして、javascript (クライアント側) を使用して XMLHttpRequest を送信しています。HTMLページとPHPページが同じレベル(両方ともローカルホスト)にある場合、問題はありません。そうでない場合に問題が発生します。responseXML は常に null です。

奇妙なことに、IE8 以外のさまざまなブラウザー (chrome、firefox、opera) を使用してこの結果が得られますが、IE8 は正しい responseText (responseXML ではありません) を提供していますが、「ブロックされたコンテンツを許可」した後でのみです。

別物。phonegap を使用して、この HTML ページ (リクエスト ページ) を Android アプリケーション (これが私の主な目標) に変換しています。タブレットでアプリケーションをテストすると、同じ結果 (null 応答) が得られます。クライアントコードは次のとおりです。

<html>
  <head>
    <title> T_d test </title>
    <script language="javascript">
      var infoPage="http://172.25.10.215/list2.php";
      // 172.25.10.215 the IP address of the server

      function test()
      {
        var xht = new XMLHttpRequest();
        xht.open("GET",infoPage,true);
        xht.send();
        xht.onreadystatechange=function() {
          if (xht.readyState==4) {
            alert(""+xht.responseXML);
            document.getElementById("id1").innerHTML="The result is : "+xht.responseText;
          }
        }
      }
    </script>
  </head>
  <body>
    <form id="form1" name="form1" method="post" action="">
      btn
      <input name="btn" type="button" id="btn" onClick="test();" value="Submit" />
    </form>
    <label id="id1"></label>
  </body>
</html>

サーバーページのコードは次のとおりです。

<?php
  header('Content-Type: text/xml');
?>
<root>
  <file>
    <filename>Test.txt</filename>
    <fileCreatingDate>15-7-2013</fileCreatingDate>
    <fileModifyDate>20-7-2013</fileModifyDate>
    <filesize>10002345</filesize>
    <filetype> Text</filetype>
  </file>
  <file>
    <filename>Test2.txt</filename>
    <fileCreatingDate>19-7-2013</fileCreatingDate>
    <fileModifyDate>20-8-2013</fileModifyDate>
    <filesize>3002345</filesize>
    <filetype> Text</filetype>
  </file>
</root>

IE8 を使用して取得した応答テキストは次のとおりです。

結果は: Test.txt 15-7-2013 20-7-2013 10002345 テキスト Test2.txt 19-7-2013 20-8-2013 3002345 テキスト

助けていただけますか?? ありがとう

4

4 に答える 4

0

XML が無効です。XML ドキュメントの最初の行として次の行がありません。

<?xml version="1.0" ?> 
于 2013-08-06T20:27:16.080 に答える