3

私は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関数でどのようにアクセスできますか?

4

2 に答える 2

4

関数のヘッダーにアクセスするには、success関数にさらに 2 つの引数、ステータス コード、および api.jquery.com でドキュメントを参照できる jqXHR オブジェクトを追加します

したがって、関数は次のようになります。

success: function (msg, status, jqXHR) {
    var jsonUpdatedData = msg;
    ...
}

ただし、コメントで指摘されているように、ヘッダーを使用してデータを送信しないことをお勧めします。おそらく、送信するjsonに含める必要があります。

また、設定により、応答を json として解釈するように jQuery に指示する必要があります。

dataType: "json"

それ以外の場合は、テキストとして返されます。

于 2012-11-26T05:00:38.900 に答える
0

ajax ポストの成功でヘッダー データを取得するという要件は、getResponseHeader メソッドを使用して達成できます。以下のコード スニペットを参照してください。

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.
   ...
          }
      });
}

ありがとう

于 2012-11-26T05:06:33.043 に答える