XMLHttpRequest - JS无法在被调用的页面上工作

时间:2017-06-25 09:46:11

标签: javascript ajax

通过XMLHttpRequest调用了另一个页面。但被调用的页面无法返回JavaScript内容。

在下面的代码中,它没有返回5 + 7的添加。

经历了各种谷歌的东西,但似乎没有任何工作。

如果任何人都可以解决这个问题会很有帮助。

  

request_xml.php

<!DOCTYPE html>
<html>
<body>

<p id="demo">Here</p>

<script>

window.onload = function() {
    loadDoc();
};

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", "call_page.php", true);
  xhttp.send();
}
</script>

</body>
</html>
  

call_page.php

<!DOCTYPE html>
<html>
<body>
<p>why is js not working?</p>
<script> 
    document.write(5+7);
</script>

</body>
</html>
  

编辑:

直接加载页面时,JavaScript正在运行

此外,JS在 call_page.php

中进行onclick工作

1 个答案:

答案 0 :(得分:1)

浏览器在页面加载时加载JavaScript。但是在这里你用AJAX加载页面,AJAX只发出HTTP请求并返回服务器的响应。由于它从未被浏览器的渲染引擎加载,因此JavaScript无法加载。

您可以尝试将响应注入使用document.createElement创建的虚拟元素,但大多数现代浏览器都不允许您执行这样的JavaScript。因此,最好的办法是找到另一个加载向量,或者将其他页面打开为弹出窗口或iframe。