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

无法使用AJAX读取本地文本文件?,ajax,html,text,Ajax,Html,Text,我正在尝试一个简单的HTML页面工作的文本文件是在同一个目录,但它不想工作(即无响应按钮)。我看了很多例子,但没有一个能说明这个问题。文本文件在同一个目录中,我尝试了绝对路径和相对路径。有没有可能因为我的来源和请求位置相同,AJAX会关闭 <!DOCTYPE html> <html> <head> <script> function loadXMLDoc() { // code for IE7+, Firefox, Chrome, Oper

我正在尝试一个简单的HTML页面工作的文本文件是在同一个目录,但它不想工作(即无响应按钮)。我看了很多例子,但没有一个能说明这个问题。文本文件在同一个目录中,我尝试了绝对路径和相对路径。有没有可能因为我的来源和请求位置相同,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>

函数loadXMLDoc()
{
//IE7+、Firefox、Chrome、Opera、Safari的代码
var xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=函数()
{
if(xmlhttp.readyState==4&&xmlhttp.status==200)
{
document.getElementById(“myDiv”).innerHTML=xmlhttp.responseText;
}
}
open(“GET”,“\test.txt”,true);
xmlhttp.send();
document.getElementById(“myDiv”).innerHTML=xmlhttp.responseText
}
通过AJAX的力量!!!!!!!
更改内容

更新已更正的剪切和粘贴错误。我指的是按钮不起作用。我看过其他的例子,但没有一个是有效的。当我尝试从我的驱动器运行,但从网页工作时。我没有一个服务器,但我只使用文本,所以我应该不需要任何超出这一点

必须使用HTTP调用加载文件内容,因为
xmlhttp.send()
方法会调用服务器。检查
xmlhttp.open(“GET”,“\test.txt”,true)
方法签名需要
第二个参数作为服务器的URL,而
第一个参数指定HTTP方法(GET/POST)


您正在运行的此页面中的文本文件的位置是什么,您的代码将尝试从同一目录加载它。

我遇到了同样的问题,我到处阅读,最后找到了解决方案。唯一的区别是我使用的是本地服务器。解决方案是将所有目录放在服务器正在运行的目录之后,直到文件名。因此,服务器运行在“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();
}

不要使用绝对路径,当然也不要使用反斜杠。什么意思:“不想工作”?
“它不想工作”
并不是一个真正的问题描述。它有什么作用?是否发出了AJAX请求?服务器的响应是什么?是否有错误消息?您在控制台中看到了什么?我在控制台中没有看到任何内容,我正在请求一个文本文件,该文件应具有xmlhttp对象的功能,这是一个由于剪切和粘贴导致的错误,并试图使代码正确显示在帖子中。这不是问题的补充回来。文本文件与HTML页面位于同一文件夹中,我尝试了不同的引用测试的方法。完整绝对路径、相对路径和文件名。它们都不起作用。
xmlhttp.open
方法期望第二个参数作为URL。你是如何运行这个页面的?如果您从本地服务器运行它,请将.txt文件保存在同一目录中。否则,您必须使用
URL
而不是路径来访问test.txt文件。文件位于我的硬盘上,我只需在地址栏中键入文件位置(d:\blah\blah\testpage.html)即可访问网页。我假设请求必须是文件名。当您说xmlhttp.send时,表示您正在向服务器发送请求。因此,如果您从磁盘运行.html文件,则必须使用URL调用test.txt文件。换句话说,它必须进行HTTP调用才能获取内容,这就是您还需要指定HTTP方法(get/POST)的原因。检查我从那个网站得到的html。我真的从那个网站上剪切粘贴,它不会正常工作。我感谢你的帮助。我知道这似乎是一项简单的任务,但我无法让它发挥作用。