无法使用AJAX读取本地文本文件?

时间:2013-09-10 18:05:21

标签: ajax html5 text

我正在尝试使用简单的HTML页面处理文本文件在同一目录中,但它不想工作(即无响应按钮)。我确实看了很多例子,但没有一个能够解释这个问题。文本文件在同一目录中,我尝试过绝对路径和相对路径。是否有可能由于我的orignation和请求位置是相同的AJAX将关闭。

    <!DOCTYPE html>
<html>
<head>
<script>
function loadXMLDoc()
{
// code for IE7+, Firefox, Chrome, Opera, Safari
var xmlhttp = new XMLHttpRequest();

xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","\test.txt",true);
xmlhttp.send();
document.getElementById("myDiv").innerHTML=xmlhttp.responseText
}
</script>
</head>
<body>

<div id="myDiv"><h2>By the power of AJAX!!!!!!!</h2></div>
<button type="button" onclick="loadXMLDoc()">Change Content</button>

</body>
</html>

更新剪切和粘贴时更正的错误。不工作我的意思是按钮什么都不做。我看过其他例子,但似乎都没有。当我尝试从我的驱动器运行但从网页上工作。我没有服务器,但我只使用文本,所以除此之外我不需要任何东西。

2 个答案:

答案 0 :(得分:1)

必须使用HTTP调用加载文件的内容,因为xmlhttp.send()方法调用服务器。检查xmlhttp.open("GET","\test.txt",true);方法签名是否期望second parameter as an URL to the serverfirst argument specify the HTTP method (GET/POST) 从您运行的此页面中文本文件的位置是什么,您的代码将尝试从同一目录加载它。

答案 1 :(得分:0)

我有同样的问题,我到处读,终于得到了解决方案。唯一的区别是我使用的是本地服务器。解决方案是在服务器运行的目录之后将所有目录放到文件名之后。因此,服务器在“localhost / xampp / htdocs / project”中运行。这是我的代码。

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()
  {  alert(xmlhttp.status+" status"+"\n"+xmlhttp.readyState+" ready");
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {   alert(xmlhttp.responseText);
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
  }

xmlhttp.open("GET","views/seila.txt",true);
xmlhttp.send();
}