尝试使用Ajax显示文本文件中的内容

时间:2014-11-19 04:06:16

标签: html ajax

我正在努力让这项任务奏效,但我还没有取得多大成功。当用户从下拉列表中选择一个国家/地区时,它应该转到服务器并获取名为usa.txt,Canada.txt,mexico.txt或Russia.txt的4个文本文件中的一个,并将内容显示到我的网页。 (每个文件都有一个简短的城市列表)有什么我想念的吗?我知道我必须发出一个http请求,但现在显示的是下拉菜单。我知道我在这里也可能需要if-else语句,但我不知道在哪里放这些语句。有人可以帮忙吗?显然,文本文件位于以下链接中。

 http://157.201.194.254/~ercanbracks    

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <!-- This is assign09.html -->
 <html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title> Ajax </title>
    <script type="text/javascript">
        function loadXMLDoc(){
            var xmlhttp;
        if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari
                xmlhttp=new XMLHttpRequest();
            }
            else{// code for IE6, IE5
                xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
            xmlhttp.onreadystatechange=function(){
                if (xmlhttp.readyState==4 && xmlhttp.status==200){
            document.getElementById("population").innerHTML=xmlhttp.responseText;
                }
            }
            xmlhttp.open("GET","usa.txt",true);
            xmlhttp.send();
        }
    </script>
</head>
<body>
    <h1 style="text-align:center">Countries</h1>
    <div style="text-align:center">
    <form name="submission" action="">
        <select name="population" onchange="loadXMLDoc(this.value)">
        <option value="">Select a country:</option>
        <option value="usa">USA</option>
        <option value="canada">Canada</option>
        <option value="mexico">Mexico</option>
        <option value="russia">Russia</option>
        </select>
    </form>
    </div>
    <div id="population"></div>
</body>
</html>

1 个答案:

答案 0 :(得分:-1)

好吧,你不能直接打开一个文本文件作为AJAX请求的一部分。您需要将请求定向到服务器页面,该页面将读取任何一个文件(usa.txt,russia.txt等)并将内容作为响应发回。

错误在线:

xmlhttp.open("GET","usa.txt",true);

应该是这样的:

xmlhttp.open("GET","respond.php?fname=usa.txt",true);

请参阅此link以了解如何向服务器发送请求。我希望你已经在像Tomcat这样的服务器中部署了网页(这里提到了response.php),你有一个服务器php / jsp / asp页面来接收客户端的请求并进行处理。