使用XMLHttpRequest的AJAX请求返回PHP文件的内容而不是执行它

时间:2015-10-01 16:01:51

标签: php ajax node.js

我想在运行node.js的Linux服务器上通过在客户端上调用XMLHttpRequest来执行PHP脚本。不返回在服务器上执行PHP脚本,而是返回脚本内容。是否需要在服务器上执行PHP脚本的node.js配置更改?另外,由于node.js用于服务器端javascript,我可以使用XMLHttpRequest执行javascript文件而不是PHP文件吗?

目标只是在服务器上执行脚本只是为了完成一项简单的任务。这时,我不需要任何东西返回给客户。

客户端:

var xmlhttp;
if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
    if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
        document.getElementById("mailDiv").innerHTML=xmlhttp.responseText;
    }
}
xmlhttp.open("GET","phpfile.php",true);
xmlhttp.send();

服务器端 - PHP脚本phpfile.php

<?php
$to = "first.last@company.com";
$subject = "Hi!";
$body = "Hi,\n\nHow are you?";
if (mail($to, $subject, $body)) {
    echo("<p>Email successfully sent!</p>");
} else {
    echo("<p>Email delivery failed…</p>");
}
?>

1 个答案:

答案 0 :(得分:1)

Node.js和PHP是完全不同的野兽。默认情况下,节点无法执行PHP,只会将文件的内容发送到客户端。

您可以尝试node-php-server之类的东西在节点内执行PHP,但我认为最好的办法是安装Apache或nginx并使用它来执行PHP。