簡體   English   中英

在javascript中訪問ajax POST響應

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM