AJAX从本地文本文件移动文本

时间:2014-01-07 22:03:55

标签: javascript jquery html ajax

我似乎无法获得一个非常简单的ajax脚本。我想要做的就是使用本地文本文件中包含的文本更改文本的值。这就是我所拥有的:

<!DOCTYPE html>
<html>
   <head>
      <script>
         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)
               {
                  document.getElementById("myDiv").innerHTML = xmlhttp.responseText;
               }
            }

            xmlhttp.open("GET", "coordinates.txt", true);
            xmlhttp.send();

         }
      </script>
   </head>
   <body>

      <div id="myDiv"><h2>Let AJAX change this text</h2></div>
      <button type="button" onclick="loadXMLDoc()">Change Content</button>

   </body>
</html>

在coordinates.txt文件中我有:

<p>Test Coords</p>

单击该按钮时,页面上的文本应更改为“测试坐标”,但由于某种原因,它只会清除旧文本,但不会插入新文本。谁能告诉我我做错了什么?这似乎很简单直接,但由于某些原因不起作用。

2 个答案:

答案 0 :(得分:0)

代码没有问题。我在同一目录中有html文件和coordinates.txt。

您必须在Chrome浏览器上启用跨源请求。

https://stackoverflow.com/a/3177718/1216965

答案 1 :(得分:0)

如果文字正在清除,则有充分的理由相信ajax正在正常运行,即readyState === 4

使用console.log(xmlhttp.responseText)查看您实际从ajax请求中获取的内容并将其发布。

此外,xhr通常用于xmlhttp,如果您希望遵循常见的变量命名惯例。