【问题标题】:Send post data to asp.net page from classic asp将发布数据从经典 asp 发送到 asp.net 页面
【发布时间】:2011-07-11 03:44:55
【问题描述】:

目标是使用 post 数据从经典 asp 中弹出一个 asp.net 页面,但是,asp.net 页面始终将 Request.Form 变量为空并显示 RequestType get。

  1. 我已经从 asp 中剥离了所有代码,测试接收从 asp.net 页面上的 html 页面发送的表单变量,这工作正常。将相同的表单 html 复制到 asp 页面仍然没有给出 request.form 数据和一个 RequestType 获取

    <html>
    <head></head>
    <body>
        <form method="post" name="form" action="http://localhost:51307">
            <input name="uid" value="1" />
            <input type="submit" name="Submit" />
        </form>
    </body>
    

asp 站点正在使用框架,并且表单是从子框架发送的,我不确定这是否是问题。

2。 假设这可行,我曾想过在 asp 中提交一个表单并使用表单的 onsubmit 事件来弹出将表单变量作为发布数据发送的页面。这是最好的方法吗?

更新 框架似乎在这里有问题,我已经从框架页面中的表单发布到另一个经典的 asp 页面,然后从这个页面重定向到 asp.net 页面。

【问题讨论】:

  • 我猜这是因为默认情况下禁用了“跨域导航窗口和框架”,这可能意味着由于安全原因您无法传递表单数据。那么现在不使用框架的时候问题就解决了吗?
  • 是的,它似乎正在工作,但我将来会想从框架中做到这一点,你能弹出导航窗口吗..在一个答案中,我会接受它,因为这是真实的问题。
  • Shadow Wizard - 你想把上面的评论作为答案让我接受吗?
  • 当然@Paul,没有收到有关您之前评论的通知。现在就这样做了。 :)

标签: asp.net asp-classic


【解决方案1】:

这可能是因为 IE 浏览器默认禁用“跨域导航窗口和框架”,这意味着出于安全原因,您无法传递表单数据。

【讨论】:

    【解决方案2】:

    ASP.NET 需要设置某些表单字段(通常为隐藏字段,尽管 HTTP POST 显然不知道其中的区别)才能将入站请求视为有效,从而填充相关变量。

    如果我记得,您需要设置 __EVENTTARGET、__EVENTARGUMENT 和 __VIEWSTATE。

    然后,您的 ASP.NET 代码需要能够处理发送的内容,因为默认处理程序会期望在 __VIEWSTATE 中至少有一些内容。因此,您需要覆盖页面中的 ViewState 处理程序。我可以稍后在工作时更新更多信息,因为我知道我以前做过。

    【讨论】:

    • 这是有道理的,但是,asp.net 通常会愉快地接受 request.form 并且当我进入记事本时一切正常,使用 post 方法添加表单并通过在浏览器中打开它来提交,但不是什么时候相同的表单在 asp 页面中,在框架中。
    • 只有当你想要“真正的” PostBack 或保留 ViewState 时才需要这些东西。否则 ASP.NET 中的 Request.Form 的行为方式与经典 ASP 中的行为方式完全相同。跨度>
    【解决方案3】:

    问题在于重定向。当你重定向一个页面时,它会创建一个 GET 请求而不是一个 POST 请求,因此不会有任何表单数据。

    您的选择是:

    1. 将表单值附加到查询字符串。
    2. 动态生成与发布的Request.Form集合对应的表单,并在body onload事件期间使用Javascript将其提交到ASP.NET页面。

    【讨论】:

    • 从问题和代码来看,他点击了method="post"的表单提交按钮,所以这里不是这样。
    • 阅读他的更新。他将表单提交到另一个框架中的页面,然后从该框架调用重定向。这会生成一个获取请求。
    猜你喜欢
    • 1970-01-01
    • 2010-11-03
    • 2014-06-08
    • 1970-01-01
    • 1970-01-01
    • 2012-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多