5

jQuery コード:

function ajaxsubmit(){
$.ajax({
    url: "/update",
    type: "POST",
    dataType: "html"
}).success(function(data) {
      $('#result').html(data);
  });
}

そして私のJava関数:

public static Result ajaxupdate() {
    String done = "very good";
    return ok("very good").as("text/plain");
}

[object Object]プレーンテキストではなく、アラートが表示されます"very good"。なぜ?

4

3 に答える 3

4

使用したい:

alert(JSON.stringify(data));

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

function ajaxsubmit(){
$.ajax({
    url: "/update",
    type: "POST",
}).complete(function(data) {
      alert(JSON.stringify(data));
  });
}

Java コードは、文字列をクライアントに返す前にオブジェクトにラップしているように見えます。JSON.stringify() は、返されるオブジェクトの構造を表示し、そこから、返されたオブジェクトには、戻り変数が含まれています (おそらく data.data または data.return のようなもの)

于 2012-06-22T12:52:09.623 に答える
2

dataType: "text" を追加し、complete() を success() に変更します

function ajaxsubmit(){
    $.ajax({
        url: "/update",
        type: "POST",
        dataType: "html"
    }).success(function(data) {
          $('#result').html(data);
      });
    }
于 2012-06-22T12:56:04.603 に答える
2

jQueryのドキュメントは、あなたの質問に明確に答えています。http://api.jquery.com/jQuery.ajax/から

complete(jqXHR, textStatus)
<...>
two arguments: The jqXHR (in jQuery 1.4.x, XMLHTTPRequest) object and a string

jqXHR の詳細については、ドキュメントを参照してください。応答文字列を使用する場合は、.success メソッドを選択することを検討してください。.contentType を明示的に指定する必要がある場合があります

于 2012-06-22T13:05:35.263 に答える