gpt4 book ai didi

c# - 在没有 QueryString 的情况下将数据传递到不同 Web 服务器上的 URL

转载 作者:太空狗 更新时间:2023-10-29 23:14:57 26 4
gpt4 key购买 nike

我有一个 .ashx 处理程序,在完成处理后,它会根据处理的进行情况重定向到成功或错误页面。处理程序在我的站点中,但成功或错误页面可能不在(这是用户可以配置的)。

有什么方法可以将错误详细信息传递到错误页面,而无需将其放入查询字符串中?

我试过:

  1. 添加包含错误详细信息的自定义 header ,但由于我使用的是 Response.Redirect, header 会被清除
  2. 使用 Server.Transfer,而不是 Response.Redirect,但这不适用于不在我站点中的 URL

我知道我可以在查询字符串中传递数据,但在某些情况下,我需要传递的数据对于查询字符串来说可能太长了。我还有其他选择吗?

最佳答案

基本上,没有。在 GET 请求(即重定向)中传递额外数据的唯一方法是在查询字符串中传递它。

重要的是要认识到这不是 WebForms 的限制,这正是 HTTP 的工作方式。如果您要重定向到您站点之外的另一个页面(因此没有 cookie/ session 数据的选项),您将不得不直接在请求中发送信息,这意味着使用查询字符串。

Server.TransferResponse.Redirect 之类的东西只是对简单 HTTP 请求的抽象;没有框架功能可以违抗 HTTP 实际工作方式

当然,对于在查询字符串中传递的什么,您确实有各种选择,但您将不得不传递一些东西。如果你真的想缩短 URL,也许你可以传递一个错误代码并公开一个 API,让接收页面获取更多信息:

  1. 使用 ID 在数据库中存储交易信息(或详细的错误消息)。
  2. 在查询字符串中传递 ID。
  3. 公开网络方法或类似的 API 以允许接收页面请求其他信息。

有很多 hacky 方法可以创建在表单发布之外的重定向中传递数据的错觉(例如返回包含表单和 Javascript 的页面以立即执行跨域形成帖子),但查询字符串是在 GET 请求中传递数据的正确方式,那么为什么要尝试绕过它呢?

关于c# - 在没有 QueryString 的情况下将数据传递到不同 Web 服务器上的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22699691/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com