浏览器自动下载PHP文件

时间:2014-08-14 16:30:01

标签: javascript php node.js

我正在读“PHP开发者的Node.js”一书。我创建了一个NodeJS Web服务器,它接收请求并给出响应。但每当我访问一个PHP文件将其重新路由到一个JS文件(要求它)时,我的浏览器会自动下载PHP文件。

这是我的JS代码,根据该代码,它还会下载JS文件(例如,当我访问localhost:1337 / first.njs时)

var http = require('http');
var url = require('url');
var file = require('./first.njs');

http.createServer(function(req, res) {
if(url.parse(req.url).pathname == 'first.php')
    file.serve(req, res);
else
    res.end('The file doesn\'t exist');
}).listen(1337, '127.0.0.1');

console.log('Server is running on 1337');

如果重要的话,这是我的PHP文件

<?php
  echo "ASD";
?>

我知道这感觉真是一个非常愚蠢的问题,但我无法弄清楚为什么会这样。

浏览器测试:Chrome和Firefox。

更新的 无法弄清楚确切的问题也无法复制问题 - 但这是我的最新代码,如果有人想将所请求的PHP文件重新路由到JS文件并提供它(JS文件)

var http = require('http');
var url = require('url');
var file = require('./first.njs');

http.createServer(function(req, res) {
if(url.parse(req.url).pathname == '/first.php')
    file.serve(req, res);
else
    res.end('File not found');
}).listen(1337, '127.0.0.1');

console.log('Server is running on 1337');

3 个答案:

答案 0 :(得分:2)

如果要检查是否可以呈现PHP页面而不实际将其呈现到页面,则可以在JavaScript / jQuery中使用ajax请求。

    $.ajax({
        type: "POST",
        url: 'YOUR PHP FILE PATH',
        success: function (dataCheck) {
            // file was accessed
        }
    });

在您的成功功能中,您可以输出已成功访问PHP文件。

答案 1 :(得分:1)

一旦你对节点有了更好的处理,你可能想要使用expressjs,看看expressjs routing

app.get('/first.php', function(req, res){
    res.send('You accessed first.php!');
});

如果您想显示php,可以使用php-node在node.js中呈现php。

答案 2 :(得分:0)

您似乎没有配置Apache(或其他服务器)或PHP。请求必须首先转到PHP脚本。所以你必须点击localhost:80 / file.php,然后在PHP脚本中重定向到localhost:1337 / file.js。

对于你想要做的更好的建议实际上是从Apache到Node.js的反向代理,然后让Node.js读取路径。