私はc#とasp.netで開発しています。
更新パネルのあるページがいくつかあります。この更新パネルには、新しいウィンドウにリダイレクトするボタンがあります。これは、コード ビハインドで scriptmanager を使用して window.open を呼び出すことによって行われます。https を使用しない限り、すべて正常に動作します。ルーターでトンネリングを使用してルーターまでの安全な回線を確保し、プロキシを使用して Web ページにアクセスすると、更新パネルにあるボタンから呼び出された window.open が新しい登録カードを開きますが、そこでエラー: ページが見つかりません。URL では、ルーターがプロキシ + IP をパスの前に配置していないことがわかります。更新パネルを削除すると、それは起こりません.Firebugを使用すると、更新パネルでPOSTを取得し、応答でcontentTypeがtext/plainであることがわかりました。更新パネルがない場合、GET があり、応答 contentType は text/html です。
プロキシ経由で https を使用しない限り、これは正常に機能します。
protected void btnPrint_Click(object sender, EventArgs e)
{
url = "~/Gui/Report/ReportViewer.aspx?ReportName=CustomerReport";
Page page = (Page)HttpContext.Current.Handler;
if (page == null) {
Redirect(url);
}
url = page.ResolveUrl(url);
string script = @"window.open(""{0}"");";
script = String.Format(script, url);
ScriptManager.RegisterStartupScript(page,
typeof(Page),
"Redirect",
script,
true);
}
<asp:UpdatePanel ID="UpdatePanel" runat="server">
<ContentTemplate>
<dx:ASPxButton runat="server" ID="btnPrint"
Text="print" OnClick="btnPrint_Click">
</dx:ASPxButton>
</ContentTemplate>
</asp:UpdatePanel>