Javascript 第一个AJAX示例不会运行

Javascript 第一个AJAX示例不会运行,javascript,html,ajax,Javascript,Html,Ajax,我已经开始在W3Schools网站上学习AJAX教程,我的第一个示例甚至不会运行。为什么这个不跑?它会在浏览器中打开,但当我单击按钮时不会发生任何事情 教程URL 这是我在记事本中创建的HTML页面++ <!DOCTYPE html> <html> <body> <h1>The XMLHttpRequest Object</h1> <p id="demo">Let AJAX change this text.</p

我已经开始在W3Schools网站上学习AJAX教程,我的第一个示例甚至不会运行。为什么这个不跑?它会在浏览器中打开,但当我单击按钮时不会发生任何事情

教程URL

这是我在记事本中创建的HTML页面++

<!DOCTYPE html>
<html>
<body>

<h1>The XMLHttpRequest Object</h1>

<p id="demo">Let AJAX change this text.</p>

<button type="button" onClick="loadDoc()">Change Content</button>

<script>
  function loadDoc() {
  var xhttp;
  if (window.XMLHttpRequest) {
  // code for modern browsers
    xhttp = new XMLHttpRequest();
    } else {
    // code for IE6 and IE5
    xhttp = new ActiveXObject("Microsoft.XMLHTTP");
 }
  xhttp.onreadystatechange = function() {
  if (this.readyState == 4 && this.status == 200) {
    document.getElementById("demo").innerHTML = this.responseText;
 }
};
 xhttp.open("GET", "ajax_info.txt", true);
 xhttp.send();
}
</script>
</body>
</html>
我在Notepad++中选择run>>chrome来运行HTML页面,但也尝试了Firefox和IE。ajax_info.txt文件与HTML文件位于同一位置。这是它的内容

AJAX不是一种编程语言

AJAX是一种从网页访问web服务器的技术


AJAX代表异步JavaScript和XML。

因为键入的是XHTP而不是XHTP。

您必须更改XHTP.onreadystatechange而不是XHTP.onreadystatechange和XHTP.send;而不是xhttp.send


你应该仔细阅读CORS。例如:

如果运行本地web服务器,您可以看到您的代码正在工作,该服务器为所讨论的html文件提供服务,并将txt文件保持在与html文件相同的目录中

如果您在mac上,运行本地web服务器的简单方法是从html文件所在的位置运行以下代码:

python-msimplehttpserver 8001

然后在浏览器中转到


既然你提到了notepad++,你似乎不在mac电脑上,但稍微用谷歌搜索一下,你就可以在windows上使用类似的设置了。

谢谢大家。我安装了Apache并将端口设置为7777,因为在端口80上已经有IIS,并将文件放在Apache的htdocs位置,使用了url,它正常工作。

浏览器调试器中是否有错误?也许您还需要一个web服务器来执行此类请求,但没有错误。本教程没有提到web服务器。我已经编辑了问题,它会在浏览器中打开,但当我单击按钮时不会发生任何事情。它是否与此url一起工作:?其工作正常。检查文件location@alpham8我试过了,但上面说找不到文件。我已经安装了Apache,因此将研究通过其本地主机和端口号运行它。我已经纠正了错误-感谢您强调了这一点,但仍然没有任何区别。我修正了这个问题,说它会在浏览器中打开,但当我点击按钮时什么也没发生。在我的chrome浏览器中,它就像一个魔咒一样工作。脚本由我的测试环境中的laravel elixir服务器提供。感谢Tobias-我已经安装了apache,因此我将尝试通过其本地主机和端口号来研究运行,改变了这一点,但结果仍然相同。谢谢,如果您直接打开html页面,则通常会出现此错误,因为您需要一个服务器。我认为,您使用的是npm http服务器。我运行代码时没有出错。谢谢。我已经安装了apache,因此将通过apache localhost和端口号运行它。将对其进行调查。当我进一步了解这一点时,您的答案对于调试来说非常有趣。我已经安装了apache,所以我们将研究如何通过其本地主机运行python?Mac有一个捆绑的Apachew为什么你不告诉我们IIS?对于您的简单示例,它是否在IIS或apache下运行并不重要。选择一个平台并删除另一个平台。在同一个系统上安装两个web服务器是不好的做法。PS:对于IIS,您可以使用IIS管理器,这是一个非常好的管理IIS的GUI工具。
function loadDoc() {
    debugger;
  var xhhtp;
  if (window.XMLHttpRequest) {
  // code for modern browsers
    xhhtp = new XMLHttpRequest();
    } else {
    // code for IE6 and IE5
    xhhtp = new ActiveXObject("Microsoft.XMLHTTP");
 }
  xhttp.onreadystatechange = function() {
  if (this.readyState == 4 && this.status == 200) {
    document.getElementById("demo").innerHTML = this.responseText;
 }
};
 xhhtp.open("GET", "ajax_info.txt", true);
 xhhtp.send();
}