[英]Accessing ajax POST response in javascript
我正在從 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
得到它。
我還想發送其他字符串(計數)。 所以我試圖將標題信息與 json 數據一起使用。 所以我添加了這一行:
context.Response.Headers.Add("MaxCount",Convert.ToString(tempList.Count));
如果這是正確的方法,我如何在我的success
功能中訪問它?
要訪問success
函數中的標頭,請向函數添加另外 2 個參數,即狀態代碼和 jqXHR 對象,您可以在api.jquery.com 上閱讀相關文檔。
所以,你的函數應該是這樣的:
success: function (msg, status, jqXHR) {
var jsonUpdatedData = msg;
...
}
但是,正如評論中指出的那樣,最好不要使用標頭發送數據。 您可能應該將它包含在您發送的 json 中。
您還需要通過設置告訴 jQuery 將響應解釋為 json
dataType: "json"
否則,它只會作為文本返回給您。
您可以使用 getResponseHeader 方法實現在 ajax post 成功中獲取標頭數據的要求,請參閱以下代碼片段。
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.
...
}
});
}
謝謝
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.