Javascript Express.js Res在使用Backbone.js时重定向问题,标签URL不重定向

Javascript Express.js Res在使用Backbone.js时重定向问题,标签URL不重定向,javascript,node.js,backbone.js,express,Javascript,Node.js,Backbone.js,Express,摘要 Express.js重定向无法正常工作 res.redirect在我输入/impulse/时会触发并正常工作,但在输入/impulse/时则不会 当我输入/#pulse时,服务器会关闭并在应用重定向检查之前获取信息,但它似乎没有重定向 详情如下: 我的web应用程序当前有一个问题,无法将用户重定向到登录屏幕 我对代码做了一点修改,这样app.all就可以用/impulse/in捕捉所有内容: app.all('/impulse*', function(req, res, next){

摘要

  • Express.js重定向无法正常工作
  • res.redirect在我输入/impulse/时会触发并正常工作,但在输入/impulse/时则不会
  • 当我输入/#pulse时,服务器会关闭并在应用重定向检查之前获取信息,但它似乎没有重定向
详情如下:

我的web应用程序当前有一个问题,无法将用户重定向到登录屏幕

我对代码做了一点修改,这样app.all就可以用/impulse/in捕捉所有内容:

app.all('/impulse*', function(req, res, next){   isImpulse = true;
console.log('force redirect: ', isImpulse );
next();
});
出于测试的目的,我取出res.redirect并将其放在路由器中,并将其默认设置为全局布尔值true,因为起初我认为“app.all”没有启动或工作正常

现在发生的是,当我的路由的下一部分触发时,它会像这样检查布尔值:

app.get('/impulse', function(req,res){
if(isImpulse){
    console.log('enforce redirect');
    res.redirect('/auth/login');
    return;
} else {  impulse.findAll}

} );
我的发现很有趣

如果我使用/impulse/我会被重定向,但是如果我使用/impulse/控制台会弹出“强制重定向”,但它不会重定向。。。即使res.redirect就在这个控制台echo的正下方…

现在我试着把所有的分类都改成“app.all”(因为我认为这最初是个问题),但是我改变代码的方式使得“app.all”不可能成为问题。问题很简单,当使用/#pulse/时res.redirect似乎没有启动

我已经包括了两张我的服务器控制台聊天的图片。第一个是当我输入/impulse/(请注意,这一个工作正常,您可以在控制台日志中看到“强制重定向,然后它会关闭并获取相关内容):

现在,这第二张图片是当我输入/#pulse/控制台仍然吐出强制重定向,但吐出在检查重定向规则之前不应该吐出的东西

显然这是一个安全问题。那么,当我输入/#你问的时候,它会显示什么呢?页眉和页脚会显示,但不会显示内容。(顺便说一下,这些都不应该显示)

那么,我做错了什么,伙计们,主干前端是否在没有经过服务器安全检查的情况下就启动并获取了这些内容?注意:app.all已放在路由器的顶部,它-应该-始终首先启动!

如果我使用/pulse/i重定向

这是因为您的代码正在返回正确的响应(即重定向),浏览器知道如何解释它并将用户重定向到响应中指示的页面

但是,如果我使用/#pulse/控制台会弹出“强制重定向”,但它不会 重定向…即使res.redirect就在这个控制台echo的正下方


这很可能是客户端JavaScript代码中的一个问题。在进行AJAX调用时,通常需要手动评估响应,并手动按照响应中指示的重定向进行操作。我不确定这是如何使用主干的,但原理是一样的。

经过大约一周的激烈讨论,我发现目前的问题是

这是客户端,我忽略了一个非常简单的功能,浏览器不向服务器发送URL,因此例如mysite.com/#admin只需在dom中查找id为admin的div元素,它不会向服务器发送请求

这解释了一切,包括为什么我会得到半加载页面,因为主干会加载静态内容,然后从服务器请求多汁的内容,但服务器会拒绝任何更多的信息

我还在琢磨如何最好地解决这个问题,但现在我已经有了一个开明的时刻,我想我最好和大家分享一下,以防人们和我有同样的问题

此外,还欢迎提供修复建议