AJAX:响应文本在本地返回我的整个PHP代码


ajax: responsetext returns my entire php code locally

我找到了一个很好的教程:教程

但它在本地不起作用。问题是,响应文本返回我的整个 php 代码。我双击我的ajaxclock.html并使用Firefox。令人惊讶的是,它可以在服务器上工作。

这里的代码:阿贾克斯时钟.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <title>AJAX Tutorial</title>
</head>
<body>
    <div id="time"></div>
    <button onclick="getTime();">Aktualisieren</button>
    <script type="text/javascript" src="script.js"></script>
</body>
</html> 

脚本.js

var req = getXmlHttpRequestObject();
window.onload = getTime();
function getXmlHttpRequestObject()
{
    if(window.XMLHttpRequest) 
    {
         return new XMLHttpRequest();
    } 
    else if(window.ActiveXObject) 
    {
        return new ActiveXObject("Microsoft.XMLHTTP");
    } 
    else 
    {
        alert('Ajax funktioniert bei Ihnen nicht!');
    }
}
function getTime()
{
    if(req.readyState == 4 || req.readyState == 0) 
    {
        req.open('GET', 'ajaxclock.php', true);
        req.setRequestHeader("Content-Type","text/plain");
        req.onreadystatechange = setMessage;
        req.send(null);
    }
}
function setMessage()
{
    if(req.readyState == 4) 
    {
        var response = eval('(' + req.responseText+ ')');
        document.getElementById('time').innerHTML = response.time;
    }
}

阿贾克斯时钟.php

<?php echo '{"time": "'.date("H:i:s").'"}'; ?>

令人惊讶的是,它可以在服务器上工作。

PHP是一种服务器端技术。它只能在服务器上工作(特别是配置为运行PHP程序的服务器)。

如果您在没有此类服务器的情况下使用它,则不会执行 PHP,并且它将以其原始状态交付给浏览器。

我遇到了同样的问题。直到我意识到Firefox(97.0.1(64位))中的LiveServer插件没有执行php文件,才找到任何原因。无论出于何种原因。我使用 XAMPP (v.3.2.4) 并通过以下方式尝试了"旧"方式:本地主机/项目/索引.php它再次对我来说工作正常。