位置: 编程技术 - 正文

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)

  • 三代税款手续费退费申请
  • 金税维护费全额抵扣
  • 每个季度申报怎么申报?
  • 利润总额与毛利的区别
  • 红字信息表状态是B900071
  • 固定资产40%部分能抵即征即退项目吗
  • 企业收到生育津贴但不发给员工怎么办
  • 如何合理把公司的钱拿出来
  • 事业单位私车公用条例
  • 专用发票二维码压线
  • 向境外分配股息
  • 企业授予员工股份的条件
  • 生产车间的房屋要交税吗
  • 银行利息收入要开票吗
  • 没有发票怎么报销入账
  • 一张报关单可以分批退税吗
  • 增值税专用发票有效期是多长时间
  • 机打发票要不要税号
  • 未休假报酬需要报个税吗
  • 公司注销留抵税金能退税吗
  • 土地出让金产生的利息交契税吗
  • 员工生育礼品
  • 未抵扣进项税额可以退税吗
  • 免税收入与不征税收入的区别与联系
  • 结转存货跌价准备冲减主营业务成本
  • 电子商业汇票背书是什么意思
  • mac菜单栏设置在哪里
  • 开机进入睡眠模式按哪个键解除
  • win10开机强制进入
  • 判断企业存货过多的判断方法
  • 现金支付医保报销
  • vue-admin-master
  • 闲置房的相关政策
  • 以物易物怎么写分录
  • 临时存款账户怎么开户
  • 向境外企业支付技术咨询指导费
  • 基于thinkphp的cms
  • 头歌HTML基础第一关初识HTML
  • php数组排列组合
  • php -a
  • Win11 Build 25336 预览版发布:Snap 窗口新增最近 20 个标签选项
  • tune a video:one-shot tuning of image diffusion models for text-to-video generation
  • 异地预缴印花税是否可以抵扣
  • 教育咨询公司能开培训费发票吗
  • SQL server 2008安装程序遇到以下错误 sku
  • 一般纳税人购销合同印花税减免政策
  • 控股子公司注销母公司账务处理实例
  • 公司欠款利息收据怎么写
  • 销售明细账本怎么填写
  • 机动车临时号牌怎么贴
  • 原材料的合理损耗计入入账成本吗
  • 买车保险返现是什么意思
  • 免征印花税的6个项目
  • 会计核算方法包括
  • 管理会计在企业中的地位如何?为什么
  • 明细分类账表格
  • 环境会计的构建方法
  • mysql学习教程
  • mysql 临时表
  • alpine安装apt
  • 卸载步骤
  • cygwin在Windows8.1中设置ssh无密码登录
  • win8.1无法安装
  • 重装Windows11
  • android游戏开发论文
  • cocos按钮点击事件
  • 动态加载dll错误
  • java.基础
  • Unity的WWW类的用法整理
  • vue移动端app开发流程
  • javascript图片
  • unity-chan
  • jquery fullpage
  • 山西电子税务局官网app
  • 税控盘的口令密码是什么
  • 客货两用车应如何运输
  • 江苏国税电子税务局开票流程
  • 加格达奇税务局领导简介
  • 发现个人所得税被物业挂职
  • 应交税金包含企业所得税吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设