我似乎无法获得一个非常简单的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>
单击该按钮时,页面上的文本应更改为“测试坐标”,但由于某种原因,它只会清除旧文本,但不会插入新文本。谁能告诉我我做错了什么?这似乎很简单直接,但由于某些原因不起作用。
答案 0 :(得分:0)
代码没有问题。我在同一目录中有html文件和coordinates.txt。
您必须在Chrome浏览器上启用跨源请求。
答案 1 :(得分:0)
如果文字正在清除,则有充分的理由相信ajax正在正常运行,即readyState === 4
。
使用console.log(xmlhttp.responseText)
查看您实际从ajax请求中获取的内容并将其发布。
此外,xhr
通常用于xmlhttp
,如果您希望遵循常见的变量命名惯例。