【问题标题】:Cross-Domain Posting in ASP.Net loses Form FieldsASP.Net 中的跨域发布丢失表单字段
【发布时间】:2010-11-14 08:49:24
【问题描述】:

我在一个解决方案中有 2 个 ASP.Net 应用程序。一个几乎是用于将数据发布到主应用程序的 3rd 方应用程序的测试工具。我试图通过做一个基本的 HTML 表单并将动作设置为指向主应用程序来模仿这个功能;但是,Request.Form NameValueCollection 是空的。我尝试使用 307 重定向在 ASP.Net 中执行此操作,但遇到了同样的问题。我暂时将临时表单移到主项目中,以便继续测试。

这是我使用的 307 重定向代码:

Response.ClearContent();
Response.StatusCode = 307;
Response.StatusDescription = "Temporary Redirect";
//redirect to a different app.
Response.RedirectLocation = "http://localhost:xxxx/default.aspx";
Response.Flush();

有没有办法在 ASP.net Web 表单中进行跨域 POST?由于某种原因,它在同一个域中工作,但在不同的域中不能工作。

【问题讨论】:

    标签: asp.net cross-domain


    【解决方案1】:

    最简单的方法是使用非服务器端

    即具有 no runat="server" 属性,只需设置 action 属性到您要发布到的 URL:
    <form method="post" action="http://localhost:xxxx/default.aspx">
        ...
    </form>
    

    希望这会有所帮助。

    【讨论】:

    • 我最初尝试过这个,但 Request.Forms 集合仍然是空的。
    • 可能值得在 HTTP 级别跟踪请求以准确查看 POST 数据中发送的内容 - Firebug 的网络面板等工具或 Burp Suite 附带的代理服务器( portswigger.net/suite) 应该对此有所帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-12
    • 2011-03-30
    • 2020-04-27
    • 1970-01-01
    • 2015-02-20
    • 2015-01-04
    • 1970-01-01
    相关资源
    最近更新 更多