位置: 编程技术 - 正文

Express URL跳转(重定向)的实现方法(express app.js)

编辑:rootadmin

推荐整理分享Express URL跳转(重定向)的实现方法(express app.js),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:url跳转方式,js post跳转页面,express app.js,express app.js,express网页,express页面跳转,express页面跳转,express.urlencoded,内容如对您有帮助,希望把文章链接给更多的朋友!

Express是一个基于Node.js实现的Web框架,其响应HTTP请求的response对象中有两个用于URL跳转方法res.location()和res.redirect(),使用它们可以实现URL的或重定向。

res.location(path)

下面列举了几种,设置http响应头Location的方法

路径值back具有特殊的意义,这个涉及到请求头Referer中指定的URL,如果Referer头没有指定,将会设置为'/'。

Express通过Location头将指定的URL字符串传递给浏览器,它并不会对指定的字符串进行验证(除'back'外)。而浏览器则负责将当前URL重定义到响应头Location中指定的URL。

res.redirect([status,] path)

其中参数:

status:{Number},表示要设置的HTTP状态码 path:{String},要设置到Location头中的URL

使用指定的http状态码,重定向到指定的URL,如果不指定http状态码,使用默认的状态码”“:”Found“,

重定向可以是一个完整的URL,这样会重定向到一个不同的站点上。

Express URL跳转(重定向)的实现方法(express app.js)

重定向也可以相对于所在主机的根目录,例如,如果你的程序运行在: post/new,如果没有反斜杠的话将会重定向到: location()与redirect()的比较

Express的response对象,是对Node.js原生对象ServerResponse的扩展。location()方法只会设置Location头,而redirect()方法除了会设置Location头外还可自动或手头设置HTTP状态码。理论上讲两者可以实现重定向。

location()方法实现过程大致如下:

从以上代码可以看出,location()方法本质上是调用了ServerResponse对象的setHeader()方法,但并没有设置状态码。通过location()设置头信息后,其后的代码还会执行。

使用location()方法实现URL的重定向,还要手动设置HTTP状态码:

如果需要立即返回响应信息,还要调用end()方法:

redirect()方法实现过程大致如下:

从以上代码可以看出,redirect()方法是对location()方法的扩展。通过location()设置Loction头后,设置HTTP状态码,最后通过ServerResponse对象的end()方法返回响应信息。调用redirect()方法后,其后的代码都不会被执行

重定向与不重定向

在使用的过程中,redirect()方法大多能重定向成功,而location()方法则不太确定,有时可以成功有时不能成功。这与我们的用法有关。

上面讲过,URL重定向是在浏览器端完成的,而URL重定向与HTTP状态码和Location头有关。浏览器首先会判断状态码,只有当状态码是:或时,才会根据Location头中的URL进行跳转。

所以,使用location()设置头信息,而不设置状态码或状态码不是或,并不会发生重定向:

而使用redirect()设置的状态码不是或也不会发生跳转:

标签: express app.js

本文链接地址:https://www.jiuchutong.com/biancheng/377924.html 转载请保留说明!

上一篇:使用 NodeJS+Express 开发服务端的简单介绍(使用时间)

下一篇:详解Node.js实现301、302重定向服务(nodejsorg)

  • 视同销售计税价格如何确定?
  • 报销为什么不能多家赔付
  • 应收账款和应付账款可以抵消吗
  • 承兑汇票大回头票是什么意思
  • 个人银行账户怎么填写
  • 董事长费用可以在公司报销吗
  • 物业公司哪些费用需要公示
  • 单位车辆折旧完怎么处理
  • 企业购买预付卡怎么做账
  • 固定资产清理属于
  • 员工证书补贴标准
  • 开专票还需要提供营业执照?
  • 民办非营利组织幼儿园清算时固定资产如何处理
  • 增值税专票代码TZD0085什么意思
  • 6%的增值税发票能抵扣13%的吗
  • 股权转让需要什么资料
  • 软件开发过程中采用多种图形化工具
  • 进口货物退税流程
  • 车辆购置税通过应交税费吗
  • 增值税 附加税
  • 远期结汇账务处理分录
  • 废品损失的计算公式
  • 出口退税服务
  • 税控盘不交服务费的后果
  • 欠条和收条,哪个更真实
  • 笔记本默认网关不可用怎么修复
  • 支付宝账户收到100块钱如何用
  • 事业单位接受捐赠固定资产入账
  • vue中使用gojs
  • b/s架构的正确解释方式
  • 社保基数和实际工资怎么算
  • 基于Java+SpringBoot+vue+element驾校管理系统设计和实现
  • linux命令bzip2
  • cp命令使用
  • 员工不小心重复报销了
  • 产成品和库存商品两个一级科目怎么填
  • python字符串多行
  • 发票整理归类汇总流程
  • 包工的人工费可以算工程款
  • 固定资产的特点不包括
  • 研发费用如何做加计扣除
  • 员工意外伤害保险最多赔多少
  • mysql集群三种方式
  • 外管证超期
  • 母公司对子公司的控股比例
  • 防火门是属于固定材料吗
  • 固定资产会计上与税法上提折旧时间
  • 电子承兑汇票承兑后几天到账
  • 不得扣除的税金啥意思
  • 印花税处罚适用征管法六十四条规定
  • 应该是先付款还是先开发票
  • 股权转让的会计资料归谁所有
  • 暂不认证通知单 不在认证范围内
  • 业务协作费计入什么科目
  • 支付银行贷款利息的会计处理
  • 机票改签手续费能报销吗
  • 出口退税进项票跨月勾选
  • 红字发票是干什么的
  • 购买银行承兑汇票现金流量表怎么填
  • 税控系统全额抵扣
  • sql合并数据库
  • mysql进阶之路
  • win10自动调整时间不准
  • 使用win10
  • 在Linux系统中安装虚拟window
  • VMware虚拟机中不支持虚拟化
  • 超小平板电脑
  • 为什么要升级呀
  • 如何设置windows桌面图标
  • grep正则表达式运用举例
  • linux安装pip2
  • windows7开机启动
  • javascript中的判断语句
  • javascript的原型,原型链,有什么特点?
  • 深入了解的高级表达
  • 安卓 存储权限 访问的地方是哪里
  • python中创建自定义函数
  • 发票怎能打印
  • 个税已申报税额为0是什么意思
  • 生育登记网上服务大厅山东
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设