Tag: redirect

激活CloudFlare时redirect循环

我试图把我的网站放在CloudFlare的后面,但不幸的是,当我激活CloudFlare时,我开始得到一个redirect循环(我正在使用Chrome)。 我试图按照build议清除cookie,但是这并不能解决问题,而且当CloudFlare未激活时,我没有遇到这个问题。 是什么导致这个以及如何在我的node.js应用程序中解决它?

“这是不允许的,需要预检的错误”在护照Facebooklogin错误的交叉来源?

我有一个node.js快递应用程序,它提供了RESTful API,我使用的是用于Facebook身份validation的护照。 我启用了服务器端的所有CORSconfiguration,并能够通过jQuery Ajax使用API​​。 但是对于Facebook身份validation,我收到以下错误: XMLHttpRequest cannot load http://localhost:3000/auth/facebook. The request was redirected to 'https://www.facebook.com/dialog/oauth?response_type=code&redirect_uri=http%…_me%2Cuser_checkins%2Cuser_likes&client_id=12345678&type=web_server', which is disallowed for cross-origin requests that require preflight. / auth / facebook端点是这个。 app.get('/auth/facebook', passport.authenticate('facebook', { scope: ['email', 'user_about_me', 'user_checkins', 'user_likes'], failureRedirect: users.authFailCallback }), users.signin); 所以基本上它被redirect到Facebook的API(302),它不允许CORS。 有什么办法可以解决这个问题吗? 或者我需要从服务器端本身调用Facebook API?

Chrome在redirect后不会发送Cookie

在node.js(使用Hapi框架)我创build用户的链接,以允许我的应用程序读取用户帐户。 Google处理该请求并询问授予权限。 然后谷歌使用GET参数作为响应代码redirect到我的服务器,在这里我有一个问题。 谷歌浏览器不会发送带有会话ID的cookie。 如果我在cookie编辑扩展中将该cookie标记为会话cookie,则会发送该cookie。 同样的行为在PHP中,但PHP创build会话时标记为会话,所以这不是问题。 我正在使用插件hapi-auth-cookie,它会创build会话并处理它的一切。 我也将这个cookie标记为非HttpOnly的hapi-auth-cookie设置,因为这是第一个区别,我注意到,当检查PHP会话cookie和我的node.js。 我有响应401缺less身份validation每个redirect。 如果我把光标放在地址栏并按回车,一切正常,所以这是一个redirect的问题。 我的问题基本上是什么可能导致这种行为。 另一方面,我不得不提到,每次请求后,firefox都会发送cookie而不会有任何问题。 redirect后的标题(没有会话的cookie): { "host": "localhost:3000", "connection": "keep-alive", "cache-control": "max-age=0", "upgrade-insecure-requests": "1", "user-agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36", "x-client-data": "CJS2eQHIprbJAQjEtskECKmdygE=", "x-chrome-connected": "id=110052060380026604986,mode=0,enable_account_consistency=false", "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "accept-encoding": "gzip, deflate, sdch, br", "accept-language": "pl-PL,pl;q=0.8,en-US;q=0.6,en;q=0.4" } 点击后进入地址栏(什么会正常工作): { "host": "localhost:3000", "connection": "keep-alive", […]

如何redirect到node.js中的另一个页面

我有一个login和注册页面。 当随机用户想要login,并login成功,我想redirect他到另一个.ejs页面(例如UserHomePage.ejs),但是,我已经尝试过没有任何工作到目前为止。 if (loggedIn) { console.log("Success!"); res.redirect('/UserHomePage'); } else { console.log("Error!"); } 我也想知道,如何redirect用户点击button。 让我们说在即时通讯显示用户页面,我显示所有的用户,然后有“添加另一个使用的button”。 我怎么做? 如何在onclick后将用户redirect到Register.js页面? <h2>List of users</h2> <ul> <% uporabniki.forEach(function(user) { %> <li> <%= user.attributes.name %> <%= user.attributes.last name %> </li> <% }); %> </ul> <h3>Add another user</h3> <form method="post"> <input type="submit" value="Add user" /> </form> 非常感谢你!

node.js中位置和redirect之间的区别

什么是res.location()方法的用法? 我可以使用res.redirect()redirect到一个特定的URL,我不能看到任何改变,如果我使用res.location()之前res.redirect()

hapi.js – 404路由VS静态文件路由

我正尝试将我的Express应用程序迁移到hapi.js,并且遇到了我的路线问题。 我只想要2 GET:我的索引'/',和不是'/'的所有东西都redirect到'/'。 使用Express我有这样的: // static files app.use(express.static(__dirname + '/public')); // index route app.get('/', function (req, res) { // whatever } // everything that is not / app.get('*', function(req, res) { res.redirect('/'); }); 我有问题与hapi.js获得相同的行为。 我的“静态路”如下所示: server.route({ method: 'GET', path: '/{path*}', handler: { directory: { path: 'public', listing: false } } }); 而我的“404路”则是: server.route({ method: 'GET', […]

链接Express.js 4的res.status(401)redirect

如果请求用户没有通过身份validation,我想发送一个响应代码401,但是我也想在请求是HTML请求时redirect。 我一直在发现,Express 4不允许这样做: res.status(401).redirect('/login') 有谁知道一个办法来处理这个? 这可能不是Express的限制,因为我要求基本上传递两个头文件,但我不明白为什么应该如此。 我应该能够传递“未经身份validation的”响应,并一次性redirect用户。

如何在Node.js / Express中redirect(301)?

我有一个静态网站,一个简单的单页面布局,我部署在Dokku。 我需要redirect(301)从www到非www和从*.website1.com到website2.com ,但我不知道如何。 我试图在npm中使用express-force-domain,但是它使得我的URL变得疯狂并且有一些redirect循环,我尝试了在网上find的其他方法,但都没有成功。 我的server.js是: var express = require('express') var app = express(); app.set('port', (process.env.PORT || 80)) app.use(express.static(__dirname + '/public')) app.get('/', function(request, response) { response.send('Hello World!') }) app.listen(app.get('port'), function() { console.log("Node app is running at localhost:" + app.get('port')) }) 这是有用的版本,但没有redirect。

通过Express / Node.js中的redirect将错误消息传递给模板

在我的Node.js应用程序中,我有一个函数(由Express路由)向用户呈现一个表单: app.get('/register', function (req, res) { res.render('form'); }); 我有另一个function,路由到相同的URL,但处理POST请求,接收由前一个表单提交的数据。 如果表单不确认,则将用户redirect回表单; 否则,它应该做什么: app.post('/register', function (req, res) { if (validate(req.registerForm)) return res.redirect('back'); persistStuff(req.registerForm, function (err, data) { // Do error verification etc. res.redirect('back') }); }); 我想要做的就是发送一个错误消息来提交,在行中: if (validate(req.registerForm)) return res.redirect('back'); 写一些像 if (validate(req.registerForm)) return res.render('form', {msg:'invalid'}); 是不可接受的,因为我想遵循POST-REDIRECT-GET模式。 我可以做类似的事情 if (validate(req.registerForm)) return res.redirect('/register?msg=invalid'); 但它会硬编码我的代码中的url,我宁愿避免它。 还有另一种方法吗?

Nodejs:redirecturl

我试图以这种方式在node.js中redirect我的应用程序的url: // response comes from the http server response.statusCode = 302; response.setHeader("Location", "/page"); response.end(); 但是当前页面和新页面混在一起,看起来很奇怪:| 我的解决scheme看起来完全合乎逻辑,我不知道为什么发生这种情况,但如果我重新加载页面redirect后,它的工作原理。 无论如何,在节点中执行HTTPredirect的正确方法是什么?