我对 javascript 和 ajax 世界完全陌生,但正在努力学习。
现在我正在测试 XMLHttpRequest,但即使是最简单的示例也无法工作。这是我试图运行的代码
<script type="text/javascript">
function test() {
xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200){
var container = document.getElementById('line');
container.innerHTML = xhr.responseText;
} else {
alert(xhr.status);
}
}
xhr.open('GET', 'http://www.google.com', true);
xhr.send(null);
}
</script>
我总是收到状态为 0 的警报。我已经阅读了大量有关此问题的网站,但我不知道我错过了什么。我将不胜感激任何帮助,谢谢!
你正在遇到同源政策.
除非您的代码实际上在 www.google.com 上运行(这不太可能),否则将会出错。
另外,虽然目前这不会给您带来问题,但这是一种糟糕的做法,并且可能会导致竞争条件,但您正在到处使用全局变量。
使 xhr 变量成为函数的局部变量
var xhr = new XMLHttpRequest();
并参考它this
在 - 的里面onreadstatechange
method.
if (this.readyState == 4 && this.status == 200){
// etc etc
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)