我们需要进行表单提交并保存一些数据,然后将用户重定向到站点外的页面,但是在重定向过程中,我们需要使用POST而不是GET“提交”表单。

我希望有一个简单的方法来完成这一点,但我开始觉得没有。我想我现在必须创建一个简单的另一个页面,只有我想要的表单,重定向到它,填充表单变量,然后做一个主体。Onload调用脚本,只调用document.forms[0].submit();

谁能告诉我还有别的选择吗?我们可能需要在项目后期进行调整,它可能会变得有点复杂,所以如果有一个简单的方法,我们可以做所有不依赖于其他页面的事情,那就太棒了。

无论如何,感谢所有的回复。


当前回答

在PHP中,您可以使用cURL发送POST数据。是否有与。net类似的东西?

是的,HttpWebRequest,请看我下面的帖子。

其他回答

PostbackUrl可以在asp按钮上设置,以便发布到不同的页面。

如果你需要在代码背后,尝试Server.Transfer。

我会这么做:

将数据放入标准表单(不带runat="server"属性),并将表单的动作设置为发布到目标场外页面。 在提交之前,我将使用XmlHttpRequest将数据提交到服务器并分析响应。如果响应意味着你应该继续与场外张贴然后我(JavaScript)将继续与张贴,否则我会重定向到我的网站上的一个页面

你可以使用这个方法:

Response.Clear();

StringBuilder sb = new StringBuilder();
sb.Append("<html>");
sb.AppendFormat(@"<body onload='document.forms[""form""].submit()'>");
sb.AppendFormat("<form name='form' action='{0}' method='post'>",postbackUrl);
sb.AppendFormat("<input type='hidden' name='id' value='{0}'>", id);
// Other params go here
sb.Append("</form>");
sb.Append("</body>");
sb.Append("</html>");

Response.Write(sb.ToString());

Response.End();

结果,在客户端从服务器获取所有html后,onload事件发生,触发表单提交并将所有数据发布到定义的postbackUrl。

在PHP中,您可以使用cURL发送POST数据。是否有与。net类似的东西?

是的,HttpWebRequest,请看我下面的帖子。

ASP中的一些新东西。Net 3.5是ASP按钮的“PostBackUrl”属性。您可以将其设置为您想要直接发布到的页面的地址,当单击该按钮时,它不会像正常情况下那样发布回同一页面,而是会发布到您所指示的页面。方便。确保UseSubmitBehavior也被设置为TRUE。