【问题标题】:Submit Post Data Without a Form in ASP Classic/VBScript在 ASP Classic/VBScript 中提交无表单的 Post 数据
【发布时间】:2011-07-11 14:39:38
【问题描述】:

我正在使用 ASP 经典版,我想在没有实际表单的情况下提交帖子数据。

这是场景。用户在 Page1 上的表单中填写评论框。该表单使用 Post 提交 Page2 的数据。 Page2 处理传入数据并使用 Response.Redirect 方法重定向回 Page1。如果用户填写的内容不正确,我需要将此数据发布回 Page1,这样用户就不会丢失他输入的内容。 Page2 并不打算在任何时候实际显示任何 HTML。它仅用作评论处理页面,无论如何总是重定向。有没有更好或首选的方法?

jQuery 有 .post 方法,它允许你做我要求的事情。但是,我真的不确定如何将它与我的 ASP 页面集成。我想我实际上必须暂时显示一个 HTML 页面,然后在页面加载后让 jQuery 处理重定向。这也意味着我将有一个表单,其中包含 jQuery 将提取的值。我认为这可能是一个不错的解决方法,但如果存在,我更喜欢更“原生”的解决方案。

【问题讨论】:

  • 正确的设计是首先在 Page1 中使用 AJAX,即让 AJAX 将数据发布到 Page2,并处理响应。不过这是一个很大的变化,所以如果您赶时间,请查看下面 Yots 建议的解决方法。
  • 当您想避免 AJAX 时,另一个选项是处理 Page1 上的状态并使用 ServerXMLHTTP 从 Page1 调用 Page2。 msdn.microsoft.com/en-us/library/ms766431(v=vs.85).aspx。使用 ServerXMLHTTP,您可以使用 POST 将变量发送到 Page2。
  • jQuery 是更好的解决方案

标签: jquery vbscript asp-classic


【解决方案1】:

根据您的系统,Server.Transfer() 可能是一个解决方案。 因此,当您从 Page2 到 Page1 执行 Server.Tranfer() 时,您的所有数据都会再次出现。

来自文档:

Transfer 方法发送(传输)所有状态信息(所有 应用程序/会话变量和请求中的所有项目 集合)在一个 ASP 文件中创建到第二个 ASP 文件。

当第二个 ASP 页面完成它的任务时,它不会返回到 第一个 ASP 页面(类似于 Execute 方法)。

注意:Transfer 方法是 响应。重定向。重定向强制 Web 服务器处理额外的 请求而 Server.Transfer 方法将执行转移到 服务器上不同的 ASP 页面,避免了额外的往返。

【讨论】:

  • 我认为这是一个很好的解决方案,虽然我还没有测试过。我不清楚如何处理“全局”变量和常量、“全局”连接对象,包括两个页面可能共享的内容等。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-19
相关资源
最近更新 更多