我有一个奇怪的情况,谷歌没有帮助我。我有一个简单的HTTP管理站点,他将数据发布到在HTTPS下运行的其他站点。 HTTP管理站点(我无法直接访问)通过基本POST发送信息,我正在尝试捕获HTTPS站点中的Request.Form值。它在dev中运行得非常好,因为接收站点不是在SSL下运行,但在prod中,我将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
答案 0 :(得分:3)
我发现了这个问题,因为我遇到了同样的问题,我需要感谢dana提出的小提琴。
使用Fiddler,我发现了发生了什么。我的页面是在HTTPS上,我发布的表单发布到HTTP。我无法弄清楚为什么发布页面上的表单结构是空的。
原来服务器无法找到该文件的http版本,并自动重定向到https版本,使用我的表单变量进行GET。它们不适用于带有GET的表单范围。 (FWIW,我正在使用CFML。)
一旦我将表单操作更改为发布到HTTPS,一切都像魅力一样。
-Jason