【发布时间】:2013-04-22 15:58:46
【问题描述】:
这里是节点菜鸟。 :) 我正在使用代码发出 Ajax 请求
var path = "/path/to/file.html";
$.get(path, function(data) {
$("#post").html(data);
});
在服务器端,响应
app.use(express.directory(__dirname + '/public'));
app.get('/path/*', function(req, res) {
var is_ajax_request = req.xhr;
if(is_ajax_request)
res.sendfile(req.path);
else
res.sendfile('public/index.html');
});
实际文件位于public/path/to/file.html。出于某种原因,Ajax 给了我错误
GET http://localhost:3000/path/to/file.html 404 (Not Found)
即使路径肯定是正确的。事实上,如果我删除整个 app.get 函数,它会发现文件没有问题。我应该以其他方式响应 Ajax 请求吗?
【问题讨论】:
-
我认为你在这里有路径混淆。在执行
sendFile之前,您是否尝试过console.log路径?这应该很快证实它不仅仅是那么简单。 -
噢!我必须使用
res.sendfile('public/' + req.path),因为在使用sendfile()时路径必须相对于app.js。让我感到困惑的是,错误消息显示了一条看起来正确的路径。谢谢。 -
添加在下面,以便您可以为后代“标记为已回答”:)
标签: jquery ajax node.js express