从服务器(php脚本)获取特定xml文件的链接,并在javascript中加载它

时间:2014-01-03 17:36:29

标签: javascript php ajax xml

在我创建的网站中,用户可以上传和下载文件,并创建一个包含操作信息的xml日志。 在网站上有一个页面,其中创建了一个读取xml的日志xml表。

当它全部存放在我的硬盘中时工作正常但是现在我开始在服务器上托管它我不知道如何使它工作。

在本地计算机中,xml请求是

xmlhttp.open("GET","file.xml",false);

现在在真实的网站上,我需要对php脚本进行ajax调用,以获取我个人xml文件的路径。

第一个问题:我需要从php脚本输出什么样的地址?

http://mywebsite/folder1/folder2/log_username.xml

是这样的吗?

使用ajax调用,我将地址保存在变量中,xml请求变为:

xmlhttp.open("GET",xml_address_variable,false);

问题是没有加载XML。问题在哪里?

编辑:现在我在javascript代码中写了一个特定用户的路径来进行实验,但是如果我把变量(link_xml)放在AJAX调用应该保存路径它不起作用所以这就是我的代码的关键部分:

var link_xml = askXMLaddress();

if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.open("GET",link_xml,false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;

2 个答案:

答案 0 :(得分:1)

要让ajax加载它,你需要一个来自doc-root的文件路径。所以,如果你想要

http://mywebsite/folder1/folder2/log_username.xml

所有JS需求都是

../folder1/folder2/log_username.xml

那么你可以像这样使用jquery.load()

 var path = <?php echo "../folder1/folder2/log_username.xml"; ?>;
 $( "#username" ).load(path);

现在而不是那个'php echo ...'的东西,你可能会更好地使用另一个ajax请求。但这将取决于您的使用案例。

答案 1 :(得分:0)

function loadXML(path, selector)
{
    var xml = new XMLHttpRequest();
    try {
        xml.open("GET", path, false);
        xml.send(null);
    }
    catch (e) {
       //some error stuff
    }
    document.getElementById(selector).innerHTML=xml.responseText;
}

我不能保证这是有效的我目前没有服务器解析xml的东西。