XAMPP - PHP脚本不会显示在HTML文件中

时间:2017-06-27 22:12:37

标签: javascript xmlhttprequest

我正在运行XAMPP和Apache。我有两个文件:

的index.php

<html>
<head>
<title>php script</title>
</head>
<body>

<?php
header("Access-Control-Allow-Origin: *");
echo "hello world";
?>

</body>
</html>

post.html

<html>
<head>
<title>html page</title>
</head>
<body>
<script>

var xhr;
xhr=new XMLHttpRequest();
xhr.open("POST", "http://localhost/demoApp/index.php", true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.send();

</script>
</body>
</html>

我希望 post.html 调用 index.php ,以便 post.html 显示&#34; hello world&#34;在HTML页面上。当我打开 index.php 时,我会看到&#34; hello world。&#34;

我也知道 post.html 正在调用 index.php ,因为我有其他脚本,当复制到 index.php 时会成功如果我打开 post.html ,请给我发电子邮件。

如果 post.html 确实在调用 index.php ,为什么我的回音没有显示在 post.html 上?

1 个答案:

答案 0 :(得分:0)

post.html正在发出请求,但您实际上并没有对该请求做任何事情。使用ajax时,javascript正在进行调用,您需要明确告诉它您希望如何处理响应。

要简单地提醒远程内容,请聆听onreadystatechange event,并在4(完成)时显示提醒:

xhr.onreadystatechange = function() {
    if(xhr.readyState==4) {
        alert(xhr.responseText);
    }
}

如果您希望将数据附加到任何地方(不使用jQuery),我建议分配带有ID的div,并附加或分配数据:

的index.php:

<?php
header("Access-Control-Allow-Origin: *");
echo "hello world";
?>

post.html:

<html>
<head>
<title>html page</title>
</head>
<body>
<div id="remote_content"></div>
<script>

var xhr;
xhr=new XMLHttpRequest();
xhr.open("POST", "http://localhost/demoApp/index.php", true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.onreadystatechange = function() {
    if(xhr.readyState !== 4)
        return;

    document.getElementById('remote_content').innerHTML = xhr.responseText;
}
xhr.send();

</script>
</body>
</html>