为什么以下代码Based on Mozilla example不起作用?尝试使用Firefox 3.5.7和Chrome。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
</head>
<body>
</body>
  <script>
    var req = new XMLHttpRequest();
    req.open('GET', 'http://www.mozilla.org/', false);
    req.send();
    if(req.status == 200) {
        alert(req.responseText);
    }
  </script>
</html>

请确保浏览器从本地磁盘中提取html(文件:///C:/Users/Maxim%20Veksler/Desktop/XMLHTTP.html)

在Firefox上,它显示以下错误:
uncaught exception: [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIXMLHttpRequest.send]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: file:///C:/Users/Maxim%20Veksler/Desktop/XMLHTTP.html :: <TOP_LEVEL> :: line 10" data: no]

我究竟做错了什么?我想向远程主机提交请求并警告结果(后来添加到div中)。

最佳答案

您的浏览器正在阻止cross-site scripting。您必须使用相对路径,否则大多数浏览器将仅返回错误或空的responseText。

以下Stack Overflow帖子可能也与您的问题有关:

  • Empty responseText from XMLHttpRequest
  • 关于javascript - XMLHttpRequest从远程主机获取HTTP响应,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2060551/

    10-12 12:25