Safari上的Ajax请求无法正常工作

时间:2018-05-15 18:41:53

标签: javascript ajax

我有一个带有ajax请求的HTML页面,它在firefox上运行良好,但safari没有做任何事情。当我调试时,我看到readystate未定义且状态为“”。有谁知道为什么它不适用于野生动物园?

Javascript代码:

    <script>
function loadDoc() {
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      document.getElementById("demo").innerHTML =
      this.responseText;
    }
  };
  xhttp.open("GET", "pegSolitaireSettings.html", true);
  xhttp.send();
}
function reloadGame() {
    location.reload();
}
</script> 

HTML代码:

<div id="demo">
  <button type="button" onclick="loadDoc()">Settings</button>
  <div class="center-div">...</div>
</div>

2 个答案:

答案 0 :(得分:0)

Firefox正在修复您的错误,而Safari则不是。

您正在尝试申请相对网址:"pegSolitaireSettings.html"

将其更改为:"http://HOSTNAME/pegSolitaireSettings.html""//HOSTNAME/pegSolitaireSettings.html",它会正常工作。

其中HOSTNAME是主机的域名。

答案 1 :(得分:0)

这是我实际拥有的(简化),我可以在浏览器中访问http://www.pegsolitaire.com/pegSolitaireSettings.html,因此vhost不应该是问题

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="CSS/styles.css" type="text/css">
<script>
    function loadDoc() {
      var xhttp = new XMLHttpRequest();
      xhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
          document.getElementById("demo").innerHTML =
          this.responseText;
        }
      };
      xhttp.open("GET", "http://www.pegsolitaire.com/pegSolitaireSettings.html", true);
      xhttp.send();
    }
	function reloadGame() {
		location.reload();
	}
</script> 
</head>

<body>
<div id="demo">
  <button type="button" onclick="loadDoc()">Settings</button>
  	<div id="gameInfo" align="center"> <br>
      <div class="values" id="totalTime"></div>
    </div>
</div>
</body>
</html>