我正在从javascript函数发出ajax POST请求:
function UpdateMetrics() {
$.ajax({
type: "POST",
url: "MyHandler.ashx?Param1=value1",
data: "{}",
contentType: "text/json; charset=utf-8",
dataType: "text",
success: function (msg) {
var jsonUpdatedData = msg;
...
}
});
}
从我的处理程序,我发送json字符串:
context.Response.write(json);
我想我会在msg
中得到它。
我也想发送其他字符串(count)。所以我试图使用标题信息和json数据。所以我添加了这一行:
context.Response.Headers.Add("MaxCount",Convert.ToString(tempList.Count));
如果这是正确的方法,我如何在我的success
功能中访问它?
答案 0 :(得分:2)
要访问success
函数中的标题,请在函数,状态代码和jqXHR对象中添加2个参数,您可以在api.jquery.com阅读文档。
所以,你的功能应该如下:
success: function (msg, status, jqXHR) {
var jsonUpdatedData = msg;
...
}
但是,正如评论中指出的那样,最好不要使用标头来发送数据。你应该把它包含在你发出的json中。
您还需要告诉jQuery通过设置
将响应解释为jsondataType: "json"
否则,它将作为文本返回给您。
答案 1 :(得分:0)
使用getResponseHeader方法可以实现您在ajax发布成功后获取标题数据的要求,请参阅以下代码段。
function UpdateMetrics() {
var callback = $.ajax({
type: "POST",
url: "MyHandler.ashx?Param1=value1",
data: "{}",
contentType: "text/json; charset=utf-8",
dataType: "text",
success: function (msg) {
var jsonUpdatedData = msg;
var headerdata = callback.getResponseHeader("MaxCount");
// Where MaxCount is name provided in the header.
...
}
});
}
由于