gpt4 book ai didi

c# - 如何向httphandler发送数据

转载 作者:行者123 更新时间:2023-11-30 16:23:46 25 4
gpt4 key购买 nike

我在页面上有一个链接,该链接执行回发。

    otherOptionsContainer.Controls.Add(new LiteralControl(String.Format("<a href='{0}' onclick='return {1}.exportItems();'>Export</a><br/>", exportURL, this._clientInstanceName)));

和http处理程序

                byte[] ms_excel = some_params_from_code
MemoryStream ms_excel_tream = new MemoryStream(ms_excel);
context.Response.ContentType = CONTENT_TYPE_MS_EXCEL;
String dateNow=DateTime.Now.ToString("dd-MMM-yyyy_HH_mm", new System.Globalization.CultureInfo("en-US"));
context.Response.AddHeader("Content-Disposition", string.Format("attachment; filename=Export_{0}.xls", dateNow));
ms_excel_tream.WriteTo(context.Response.OutputStream);
ms_excel_tream.Close();

我需要将 some_params_from_code 发送到 httpHandler。我有一些限制。 1.不要使用查询字符串 2. 不要使用 Cookie

我正尝试像这样使用 ajax 发送数据

$.ajax({
url: "_Layouts/blah/blahHandler.ashx",
contentType: "application/json; charset=utf-8",
data: { 'key1':'value1'},
dataType: "json",
success: OnComplete,
error: OnFail
});

但是 http 处理程序写入了另一个响应对象。或者处理程序出现另一个上下文。

最佳答案

既然您唯一的限制是不使用查询字符串和 cookie,为什么不使用表单发布呢?考虑这个虚拟示例。

在您的 HTML 中:

<form id="form" action="DefaultHandler.ashx" method="post" style="display: none;">
<input type="hidden" name="field1" value="abc" />
<input type="hidden" name="field2" value="xyz" />
</form>
<a href="#" onclick="form.submit(); return false;">Handle</a>

在处理程序中:

public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
context.Response.Write("Received:\n");
context.Response.Write(context.Request.Form["field1"]);
context.Response.Write("\n");
context.Response.Write(context.Request.Form["field2"]);
context.Response.Write("\n");
}

根据您的需要进行调整。您可以在 JavaScript 中动态创建表单并根据需要设置字段。

关于c# - 如何向httphandler发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11262112/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com