![]() |
1
216
这样做需要了解HTTP重定向的工作方式。当你使用
另一个选择是使用 HTTP Status Code 307 ,它指定浏览器应以与原始请求相同的方式发出重定向请求,但向用户提示安全警告。要做到这一点,您可以这样写:
不幸的是,这并不总是奏效。 Different browsers implement this differently ,因为它不是通用状态代码。
所以,据我所知,实现这种功能的唯一方法就是使用JavaScript。有两种选择我可以考虑的最高点:
在这两者中,我选择第二个,有两个原因。首先,它比第一个更可靠,因为JavaScript不需要它来工作;对于那些没有启用它的人,您可以始终使隐藏表单的提交按钮可见,并指示他们在超过5秒时按下它。第二,您可以决定哪些数据被传输到第三方服务器;如果您使用的只是在表单经过时对其进行处理,那么您将传递所有的POST数据,这并不总是您想要的。307解决方案也是如此,假设它适用于所有用户。 希望这有帮助! |
![]() |
2
113
你可以用这个围裙:
因此,在客户端从服务器获取所有HTML之后,事件 重载 触发表单提交并将所有数据发布到定义的回发URL。 |
![]() |
3
30
httpwebrequest用于此。 在回发时,创建一个httpwebrequest到您的第三方并发布表单数据,然后一旦完成,您就可以响应。重定向到您想要的任何地方。 您可以获得额外的优势,即不必命名所有服务器控件来生成第三方表单,您可以在构建post字符串时进行此转换。
但是,如果您需要用户从该表单中查看响应页,您唯一的选择是使用server.transfer,这可能有效,也可能无效。 |
![]() |
4
6
这会让生活更轻松。 您可以简单地在Web应用程序中使用Response.RedirectWithData(…)方法。
|
![]() |
5
5
ASP.NET 3.5中的一个新特性是ASP按钮的“postbackurl”属性。您可以将其设置为要直接发布到的页面的地址,单击该按钮时,它不会像正常一样重新发布到同一页面,而是发布到您指定的页面。手巧。确保useSubmitBehavior也设置为true。 |
![]() |
6
4
想分享一下Heroku用它的SSO来添加提供者可能会很有趣 在“kensa”工具的源代码中可以看到它如何工作的示例: 如果你使用javascript的话,你可以在实践中看到。示例页面源:
|
![]() |
7
3
可以在ASP按钮上设置回发URL,以便发布到其他页面。 如果您需要在codebehind中执行此操作,请尝试server.transfer。 |
![]() |
8
2
@ Matt, 您仍然可以使用httpwebrequest,然后将收到的响应定向到实际的outputstream响应,这将为用户提供响应。唯一的问题是任何相对的URL都会被破坏。 不过,这可能会奏效。 |
![]() |
9
2
我要做的是: 将数据放入标准表单(没有runat=“server”属性),并将表单的操作设置为发布到目标非站点页面。 在提交之前,我会将数据提交到我的服务器 使用xmlhttpRequest 分析反应。如果响应意味着您应该继续进行场外发布,那么我(javascript)将继续发布,否则我将重定向到我的站点上的页面。 |
![]() |
10
2
是的,httpwebrequest,请参阅下面的我的文章。 |
![]() |
11
1
我建议构建一个httpwebrequest,以编程方式执行您的帖子,然后在阅读响应后重定向(如果适用)。 |
![]() |
12
1
get(and head)方法不应该用于做任何有副作用的事情。副作用可能是更新Web应用程序的状态,也可能是向您的信用卡收费。如果一个动作有副作用,则应使用另一种方法(post)。 所以,用户(或者他们的浏览器)不应该为GET所做的事情负责。如果由于GET而产生一些有害或昂贵的副作用,那将是Web应用程序的错误,而不是用户的错误。根据规范,用户代理 不能 自动跟踪重定向,除非它是对GET或HEAD请求的响应。 当然,很多GET请求确实有一些副作用,即使它只是附加到日志文件中。重要的是应用程序,而不是用户,应该对这些影响负责。 HTTP规范的相关部分包括 9.1.1 and 9.1.2 和 10.3 . |
![]() |
13
0
通常,您所需要的只是在这两个请求之间携带一些状态。事实上,有一种非常有趣的方法可以做到这一点,它不依赖于javascript(想想<noscript/>)。
有了这个cookie,您可以在下面的请求/redirect.html中检索name=value信息,您可以在这个name/value对字符串中存储任何类型的信息,最多可以存储4K的数据(典型的cookie限制)。当然,您应该避免这种情况,而是存储状态代码和标志位。 收到此请求后,您将返回该状态代码的删除请求。
我的HTTP有点生锈,我一直在研究RFC2109和RFC2965的可靠性,最好我想让cookie往返一次,但这似乎也不可能, 如果您要重新定位到另一个域,第三方cookie可能是您的一个问题。这仍然是可能的,但并不像你在自己的领域里做事情那样无痛。 这里的问题是并发性,如果一个超级用户正在使用多个选项卡并设法交错属于同一会话的几个请求(这是非常不可能的,但不是不可能的),这可能会导致应用程序中的不一致。 这是在没有无意义的URL和javascript的情况下执行HTTP往返的<noscript/>方法。 我将这段代码作为一个概念教授提供:如果这段代码是在一个您不熟悉的上下文中运行的,我认为您可以计算出什么部分是什么。 其思想是在重定向时使用某种状态调用relocate,而重新定位的URL调用get state以获取数据(如果有)。
|
![]() |
Karthi Jayaprakasam · 具有客户端证书的SSL流 3 年前 |
![]() |
Parapluie · Php PayPal IPN返回无效 7 年前 |
![]() |
HotDudeSmith · 我的域及其子文件夹能否连接到EC2? 7 年前 |
![]() |
uptoyou · HTTP会话安全性和会话ID 7 年前 |