asp.net-core - UseStatusCodePagesWithRedirects 和 UseStatusCodePagesWithReExecute 之间的区别 - Asp.net 核心中的状态代码页
问题描述
我正在使用 UseStatusCodePages 中间件在我的应用程序上显示状态代码页,但它在 UI 上显示纯文本,没有任何其他信息,
我想显示带有状态代码信息的 UI 以及其他一些有用的信息,例如客户支持号码和更用户友好的页面。
我发现我们可以使用两种扩展方法来做到这一点,即 UseStatusCodePagesWithRedirects 和 UseStatusCodePagesWithReExecute。我从Microsoft Docs中发现的唯一区别是,
UseStatusCodePagesWithRedirects:向客户端发送 302。
UseStatusCodePagesWithReExecute:发送原始状态代码并执行重定向 URL 的处理程序。
这是唯一的区别吗?
解决方案
当使用 app.UseStatusCodePagesWithRedirects("/Error/{0}") 和无效请求(让我们说“/abc/xyz”)然后提出;
- 发出404状态码,app.UseStatusCodePagesWithRedirects("/Error/{0}") 拦截请求并发出302状态码(表示请求资源的URI已临时更改)
- 随着 302 的发出,另一个 get 请求被发出,这导致url 从“/abc/xyz”更改为“/Error/404”。
- 由于请求被重定向到特定的错误控制器,因此请求的状态代码在浏览器开发者工具中为 200 ok。
但是当使用 app.UseStatusCodePagesWithReExecute("/Error/{0}") 和无效请求时(让我们说“/abc/xyz”)然后提出;
app.UseStatusCodePagesWithReExecute("/Error/{0}") 中间件拦截 404 状态码并重新执行指向 URL 的管道
当中间件重新执行管道时,地址栏中的原始 URL“/abc/xyz”被保留。它不会从“/abc/xyz”更改为“/Error/{0}”。
原始状态代码(在这种情况下为 404)也保留在开发人员工具中。
推荐阅读
- javascript - 执行包含其他 3 个函数的函数时出现问题
- android - 如何访问活动内部/从活动中的片段视图组件
- reactjs - React Router 双重保护路由
- proxy - 需要构建一个代理来捕获应用程序之间的请求/响应(有约束)。我们是否在寻找正确的选择?
- java - Spring Boot Rest 端点返回 null 并带有 fetch 请求
- pug - 如何在自定义类中包含 pug 文件?
- raspberry-pi - 在树莓派 B+ 上启动时运行不和谐机器人
- python - 使用 rk4 将行星轨道显示为线性图
- python - 从字符串中获取N个字符,尊重完整的单词python
- python - 如果 Python 中的线图上有某个值,是否可以不绘制点?