我们正在将Cloudflare用于其DNS和HTTP代理。我们今天发现了一些与回发和重定向有关的奇怪行为。
我们的管理系统主页包含TextBox和Button。用户输入ID并单击该按钮,然后我们将其重定向到我们系统上的购买(此购买页面使用相同的主页)。
以下是一系列事件:
我们首先在本地尝试此操作,但无法复制该行为。然后我们尝试检查POST以查看我们是否发送了不正确的值。在打开Fiddler检查请求后,问题完全消失了。然后,我关闭了Fiddler,并使用Chrome工具检查POST,发现正在发送正确的ID。
然后我们认为这可能与Cloudflare有关,因此禁用了Cloudflare HTTP代理。完成后,一切都按预期工作。
之前有没有其他人经历过这个问题,如果有的话,我们可以做些什么来纠正这个问题?以下是我的代码:
按钮代码:
<asp:Panel runat="server" DefaultButton="btnQuickJumpPurchase" class="row hide-for-small">
<div class="four columns offset-by-two">
<asp:TextBox ID="txtQuickJumpPurchase" CssClass="left nine" placeholder="Purchase ID" runat="server"></asp:TextBox>
<asp:Button ID="btnQuickJumpPurchase" runat="server" Text="Go" OnClick="btnQuickJumpPurchase_Click" CssClass="right button green small radius" />
</div>
<div class="two columns"></div>
OnClick事件处理程序
protected void btnQuickJumpPurchase_Click(object sender, EventArgs e)
{
int quickPurchaseId = 0;
int.TryParse(txtQuickJumpPurchase.Text, out quickPurchaseId);
if (quickPurchaseId == 0)
HttpContext.Current.Response.Redirect("/admin");
else
HttpContext.Current.Response.Redirect($"/admin/purchases/purchase.aspx?id={quickPurchaseId}");
}