javascript - 对从 AJAX 发送到我的 Express 服务器的请求路径感到困惑

标签 javascript jquery node.js express web

我有 Node.js Express 服务器的基本设置

我正在尝试使用 res.sendFile 提供 html 文件,使用此路由处理程序:

router.get('/:run_id/:test_num',function(req,res,next){

    var runId = req.params.run_id;
    var testNum = req.params.test_num;

    res.sendFile(path.resolve('results',runId,testNum),{
        maxAge:'58h'
    });

});

在我的 app.js 文件中,我有这个中间件

app.use('/results', require('./routes/results'));

问题是请求的路由如下:

  pathname: '/results/results/1450830953375/test6.txt',
  path: '/results/results/1450830953375/test6.txt',
  href: '/results/results/1450830953375/test6.txt' 

所以问题是它是 /results/results/ 而不仅仅是 /results

我正在使用 RequireJS,包含要请求的文件数据的模块如下所示:

    define('SumanTestFiles',function(){
            return new Object(["results/1450830340344/test5.txt","results/1450830340344/test6.txt"]);
     });

然后我循环每个文件路径并使用 jQuery/AJAX 从服务器请求它:

define(['SumanTestFiles'],function(stf){

    stf.forEach(function (testPath) {
        $.get(testPath).done(function (msg) {...

所以你可以看到 testPaths 没有被篡改,它们毫无疑问只是“results/1450830340344/test5.txt”,等等。

所以我的问题是,为什么路径显示在我的服务器上,路径中有两个相邻的“结果”字符串实例?

这没有多大意义,因为请求应该是

/results/1450830953375/test6.txt

不是

/results/results/1450830953375/test6.txt

有人有什么想法吗?谢谢

最佳答案

这对我来说是新的,因为我对网络开发相当陌生

简短的答案是,而不是这样:

  define('SumanTestFiles',function(){
            return new Object(["results/1450830340344/test5.txt","results/1450830340344/test6.txt"]);
     });

我需要这样做

  define('SumanTestFiles',function(){
            return new Object(["/results/1450830340344/test5.txt","/results/1450830340344/test6.txt"]);
     });

否则,到我的服务器的 AJAX 请求路径将相对于搜索栏中的 URL,而不是绝对路径。天哪,这令人困惑。

关于javascript - 对从 AJAX 发送到我的 Express 服务器的请求路径感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34426879/

相关文章:

javascript - 大型 CSS 背景图像在加载时会阻塞 Javascript

javascript - 加载时添加 AngularJS 文件

javascript - createjs防止超链接交互

javascript - Semantic-ui:无法调用复选框 onDisable 函数

javascript - 当视口(viewport)中有空间时,将工具提示定位在鼠标上方,否则在鼠标下方

javascript - 使脚本适用于两种输入,可能吗?

javascript - 无法隐藏我页面的部分内容,但相同的代码适用于 JSFiddle

javascript - 我有一个 Node 异步函数示例。回调返回非预期值

javascript - 是否可以在独立的 HTML 文件中使用 "inline"或 "embed"整个 javascript 库?

node.js - 如何使用 Lighttpd 安装 mod_websocket?