0

JSON、AJAX、JQUERYを使用してhttphandlerファイルからクライアントに2つの連続したメッセージを送信しようとしています。ただし、2番目のメッセージのみが表示されます。理由は何でしょうか?両方のメッセージをどのように表示しますか?

.ASHX

using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
using Newtonsoft.Json.Converters;

public class Gen_BLL : IHttpHandler {
  public void ProcessRequest (HttpContext context) {
string ename = JsonConvert.SerializeObject("Message1..");
context.Response.Clear();
context.Response.ContentType = "application/json; charset=utf-8";
context.Response.Write(ename);

ename = JsonConvert.SerializeObject("Message2..");
context.Response.Clear();
context.Response.ContentType = "application/json; charset=utf-8";
context.Response.Write(ename);

}

public bool IsReusable {
get {return false;}

}

}

.JSファイル:

function funGenAst(usro){
 $.ajax({
type: "GET",    
url: "Gen_BLL.ashx",
contentType: "application/json; charset=utf-8",
data: { "uso": usro },
dataType: "json",
success: OnComplete,        
error: OnFail
});
 return false;
}

function OnComplete(result) {
  alert(result);
}

function OnFail(result){
  alert("fail...');
}

アラートは1つだけ表示されます。つまり、「Message2..」です。「Message1..」アラートはまったくポップアップされません。どのようにして両方のメッセージを次々に警告することができますか?

ありがとうbsc

4

1 に答える 1

0

あなたは単純にそれを行うことはできません。

http通信のプロトコルがあり、これはそれを壊します。ヘッダーとコンテンツを送信した瞬間から、ヘッダーをクリアして2番目の(または新しい)メッセージを送信するという予測はありません。

ハイパーテキスト転送プロトコル (HTTP) について: http://www.w3.org/Protocols/rfc2616/rfc2616-sec1.html

別の方法: メッセージを 1 つの応答にマージするか、最初のメッセージを受信した後、新しい要求を作成して 2 番目の応答を取得します。

于 2012-06-20T09:50:04.460 に答える