位置: 编程技术 - 正文

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

发布时间:2024-02-27

推荐整理分享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)

  • 简易计税方法是什么意思
  • 空调安装维修费会计科目
  • 递延所得税资产账务处理
  • 企业所得税季初不能是0
  • 什么发票可以做替票
  • 公司员工提成怎么交个税
  • 注销公司报表应注意什么
  • 进项税额转出补交税金会计分录
  • 固定资产台账登记表明细科目写什么
  • 增值税进项销项每个月需要结转吗
  • 外资企业银行贷款限制
  • 购电子承兑汇票差额计入什么科目?
  • 开票系统维护费每年都要交吗
  • 预交电费有发票吗
  • 抵减以前年度多缴企业所得税分录
  • 定额发票验旧怎么操作
  • 汇算清缴是啥
  • 土地闲置费可以税前扣除吗
  • 业务宣传费和广告费有什么区别
  • 暂估成本一直拿不到发票
  • 企业账户利息收入怎么算
  • 增资后工商怎么变更
  • 退回社保费的会议记录
  • 小微企业工业企业认定标准
  • 企业买金税盘做什么科目
  • 车辆哪些费用计税
  • cpuz.exe
  • 操作系统的内存映射
  • win10电脑防火墙如何关闭
  • cpu的保养有哪些
  • url是什么软件
  • el-cascader数据渲染时不出现文字
  • 高新技术企业的申报条件包括以下哪些
  • thinkphp3.1
  • 收到金融服务费怎么转账给别人
  • php的!
  • 未税收入怎么做分录
  • 工会经费免征三年的文件山东
  • 败诉方承担诉讼费缴直接付给法院还是胜诉方
  • 已抄报未反写什么意思
  • vgrename命令 重命名卷组
  • 增值税抵扣进项税额什么意思
  • 同业代付业务会计核算
  • 帝国cms标签调用大全
  • javascript前端开发案例教程源码
  • 生产经营个人所得税税率表
  • 减免所得税额怎么做分录
  • 建信融通e信通怎样转让
  • 哪些拍卖行为不属于诈骗
  • 单位内部食堂怎么收费
  • 结转本年利润的账务处理
  • 单位订购价格
  • 公司购买的空调
  • 运费在会计科目中属于什么费用
  • 固定资产是每月折旧吗
  • 进项税税额是多少
  • 工会经费的列支范围有哪些
  • 合同章盖成公章
  • 企业内账怎么做
  • 设置mysql数据库字符集的语句
  • cf分屏不全屏
  • vista安装图解
  • WZCBDLS.EXE - WZCBDLS是什么进程
  • 安装win8.1一直卡着不动
  • Unity3D 事件
  • js类的实现
  • 创建nodejs 基于express项目
  • Android游戏开发读后感
  • js多选
  • unity3d性能优化工具
  • python tkinter tabview
  • js中的
  • 如何python
  • string和stringbuffer创建后都可以修改
  • 增值税发票税控开票软件客服
  • 国家税务总局广州市税务局
  • 国税和地税分别交什么税
  • 税务局调查巡查政策依据
  • 税务迁出需要哪些手续2020年
  • 建设工程造价咨询合同需要交印花税吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号