0

阅读 Ajax 初学者书籍,第二个示例是从 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它很可能会发送响应,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 回答
0

重命名data.php文件以data.xml避免 PHP 处理器在<?and?>标记上出错的任何可能性

于 2013-06-15T20:08:54.940 回答