0

Ajax の入門書を読むと、2 番目の例は、php ファイルから XML データを取得することです。他の人の同様の問題に対するこのサイトの回答をグーグルで読んで、約2時間立ち往生していますが、理解できません

私の機能

var options;

function getOptions1(){
    var XMLHttpRequestObject = new XMLHttpRequest();
    XMLHttpRequestObject.open("GET", "http://localhost/AV/data.php", false); // this was "true" somewhere i read to set it to "false"
    XMLHttpRequestObject.onreadystatechange = function(){
        if (this.readyState != 4) return;
        if (this.status == 200){ 
            alert ("hi");
            var xmlDocument = this.responseXML;
            options = xmlDocument.getElementsByTagName("option"); // firefox tels me here "TypeError xmlDocument is null"
            listOptions();
        }
    }
    XMLHttpRequestObject.send(null);
}

これがdata.phpファイルです

 <?xml version="1.0" encoding="UTF-8" ?> //i read to add that encoding in there - no help
    <options>
        <option>red</option>
        <option>green</option>
        <option>blue</option>
    </options>
4

2 に答える 2

0

これを PHP ファイルの先頭 (php タグ内) に追加してみてください。

header('Content-Type: text/xml');

PHP に応答を送信するように指示しないと、おそらく応答text/xmlが送信され、プロパティが null になることtext/htmlを意味します。responseXML

また、同一オリジン ポリシーに違反していないことを確認してください。リクエストは、同じドメインと同じポートからのものである必要があります。

変更してみる

 XMLHttpRequestObject.open("GET", "http://localhost/AV/data.php", false); // this was "true" somewhere i read to set it to "false"

に:

 XMLHttpRequestObject.open("GET", "/AV/data.php", false); 
于 2013-06-15T20:05:14.830 に答える