javascript - 如何读取服务器端的文件?

查看:119
本文介绍了javascript - 如何读取服务器端的文件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

参见http://javascript.ruanyifeng....

var ajax = new XMLHttpRequest();
ajax.open('GET', 'http://www.example.com/page.php', true);
从本地端读取服务器端的文件。

下面有这样的场景:test.xml存放在 123.456.789.1 这台机器的 /tmp文件夹下面。
本机的浏览器是firefox,操作系统linux.
test.xml文件很简单

<?xml version="1.0" encoding="UTF-8"?>
<book>
    <bookname>《Harry Potter》</bookname>
    <author>J.K.Rowling</author>
    <pages>590</pages>
</book>

我运行下面的代码为何没有反应?

<html>
<head><title>访问XML文档,获取图书信息</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">
function loadXMLDoc(docName)
{
    var http = new XMLHttpRequest();
    http.open("GET", docName, true);
    http.send(null);
    var xmlDoc = http.responseXML;
    return xmlDoc;
}

function getBookInfo()
{
    var xml = loadXMLDoc("http://123.456.789.1/tmp/test.xml");
    var bookname = xml.getElementsByTagName("bookname")[0].firstChild.nodeValue;
    var author = xml.getElementsByTagName("author")[0].firstChild.nodeValue;
    var pages = xml.getElementsByTagName("pages")[0].firstChild.nodeValue;

    document.getElementById("td_bookname").innerHTML = bookname;
    document.getElementById("td_author").innerHTML = author;
    document.getElementById("td_pages").innerHTML = pages;
}
</script></head>
<body>
<table style="width:200px;">
    <tr><td>书名:</td><td id="td_bookname"></td></tr>
    <tr><td>作者:</td><td id="td_author"></td></tr>
    <tr><td>页数:</td><td id="td_pages"></td></tr>
</table>
<input type="button" value="获取图书信息" onclick="getBookInfo()" />
</body>
</html>

解决方案

路径你理解错了.

http://123.456.789.1/tmp/test.xml

表示的是123.456.789.1这台服务器的WEB服务器根目录下的/tmp/test.xml,
如果DOCUMENT_ROOT是/www目录, 那这URL表示的是 /www/tmp/test.xml 文件
不是主机的/tmp目录.

写个PHP文件, 把/tmp/test.xml读取输出就行了.

<?php 
readfile('/tmp/test.xml');

这篇关于javascript - 如何读取服务器端的文件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆