1

我有一个奇怪的情况,谷歌没有帮助我。我有一个管理站点,它采用简单的 HTTP,将数据发布到在 HTTPS 下运行的不同站点。HTTP 管理站点(我没有直接访问权限)正在通过基本 POST 发送信息,我正在尝试捕获 HTTPS 站点中的 Request.Form 值。由于接收站点未在 SSL 下运行,因此它在开发中运行良好,但在生产中,我将 Request.Form 设置为空。有人可以启发我吗?基本的 HTTPS 请求代码如下:

Dim nvm As NameValueCollection = Request.Form
Dim _idInscricao As String
Dim _Origem As String

litMensagem.Text = "Wait..."

    If nvm.Keys.Count = 0 Then
        litMensagem.Text = "Error recovering data. No keys found."
        Exit Sub
    End If

    For Each _Key As String In nvm.Keys
        If _Key.ToLower.EndsWith("idinscricao") Then
            _idInscricao = nvm(_Key)
        End If
        If _Key.ToLower.EndsWith("origem") Then
            _Origem = nvm(_Key)
        End If
    Next

    If _idInscricao Is Nothing OrElse String.IsNullOrEmpty(_idInscricao) _
        OrElse _Origem Is Nothing OrElse String.IsNullOrEmpty(_Origem) Then
        litMensagem.Text = "Error recovering data."
        Exit Sub
    End If
4

1 回答 1

3

我发现这个问题是因为我遇到了同样的问题,我需要感谢 dana 的提琴手推荐。

使用 Fiddler,我发现了发生了什么。我的页面在 HTTPS 上,而我发布的表单发布到 HTTP。我无法弄清楚为什么我发布页面上的表单结构是空的。

结果服务器找不到文件的 http 版本并自动重定向到 https 版本,使用我的表单变量执行 GET。它们在带有 GET 的表单范围内不可用。(FWIW,我正在使用 CFML。)

一旦我将表单操作更改为发布到 HTTPS,一切都像魅力一样。

-杰森

于 2012-12-08T18:41:45.660 回答