所以我有一个登陆页面(“/”)。在这个页面上是一个用户名和密码的登录表单,并带有一个提交按钮。我有app.get加载页面和app.post来接收表单的参数。然而,我的意图是有一个app.post('/登录',功能(REQ,RES){/ /逻辑});有没有/登录路线或页面加载,这只会容纳登录本身的逻辑(验证用户名等)是否有一种简单的方法来从'/'的帖子重定向到/登录没有它试图加载/登录页面,这不存在?使用的是重定向后张贴快递JS路线
0
A
回答
2
我不知道我是否正确地理解你的问题。据我所知,你希望你的POST请求/
重定向到POST请求/login
这可能会很棘手。
通常你通过发送301永久搬迁或302找到HTTP状态代码执行重定向。他们两人通常在实践中工作,就好像它是303见其他并发出GET请求。参见List of HTTP status codes维基百科:
这是一个与标准相矛盾的行业实践的例子。 HTTP/1.0规范(RFC 1945)要求客户端执行 临时重定向(原始描述短语为“Moved Temporarily”),但流行的浏览器使用303 See Other的 功能实现了302。因此,HTTP/1.1添加状态 代码303和307来区分这两种行为。 然而,一些Web应用程序和框架使用302个状态码 就好像它是在303
有一个307临时重定向(因为HTTP/1.1),创建来解决这个问题是不能改变HTTP方法 - 所以POST的重定向应该仍然是POST - 请参阅Wikipedia:
在这种情况下,请求应该用另一个URI重复;但是,未来的请求应该仍然使用原始URI。在 与302历史实施方式相比,请求方法 不允许在重新发送原始请求时更改。例如,对于 示例,应该使用另一个POST 请求重复POST请求。
据我所知,浏览器在跟踪这样的重定向之前应该警告用户。我不知道这在实践中如何运作。我不会依赖这一点,因为它最多可能会让用户感到烦恼,甚至根本无法工作。
我的建议是要么改变这一点:
app.post('/login', function (req, res) {
// logic
});
这样:
function loginHandler(req, res) {
// logic
}
app.post('/login', loginHandler);
app.post('/', loginHandler);
或这样的事情,使用正则表达式:
app.post(/^\/(?:login)?$/, function (req, res) {
// logic
});
这种方式,而不是重定向相同的处理程序将用于这两个路线。它会更快,更稳健,因为这样你就不需要依赖重定向工作,因为根本就没有重定向。
相关问题
- 1. 快递JS - 不能重定向
- 2. 快递js重定向为IE
- 3. 组织快递JS我的路线
- 4. PHP重定向张贴到数据库
- 5. 快递JS需要根据路线
- 6. 快递js内路线多功能
- 7. 重定向路线 - 什么是烬路?
- 8. 重定向路线
- 9. 快递JS看不到饼干,这是调用路线
- 10. 快递JS使用可选参数路线:不同的路径总是指向相同的功能
- 11. 向前快递JS
- 12. 的NodeJS +快递3 - 在路线斜线,然后固定操作
- 13. 快递js,如何匹配所有路线,甚至子路线
- 14. 快递重定向到前端路径与路径
- 15. 如何更改路线值然后重定向到该路线?
- 16. 重定向路线编程方式使用路线名称
- 17. 重定向到节点JS路线另一条路径
- 18. 后重定向 - 获取和张贴到数据库中的双重条目
- 19. 这是不正确的快递使用路线吗?
- 20. 无法在快递重定向与节点JS
- 21. 重定向快递JS管道(req.pipe)水库正常
- 22. Opencart重定向定义的路线
- 23. 快递js发送应用程序变量到路线
- 24. 用快递js服务图片路径
- 25. 应用路线 - 不重定向到
- 26. Laravel 5.5登录后重定向到一个特定的路线
- 27. 重定向从一个路径到另一个快递
- 28. 使用ajax重定向到新的网址并快速路由
- 29. Node.js的快递:重定向或渲染上后
- 30. 快递路线是以前导斜线定义的,是否有技术原因?
如果有人告诉我是否存在违反政策的情况,或者由于任何原因我的问题不可接受,而不仅仅是简单地向下投票,那将会很好。 –
我的答案是否适合你?如果是这样,那么你可以考虑[接受答案](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235),以便其他人寻找这个问题会看到你的问题有一个被接受的答案。 – rsp