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" 并用 success() 更改 complete()

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

You can find more about jqXHR in documentation. If you want to use the response string, consider opting for .success method. You may have to explicitly provide .contentType

于 2012-06-22T13:05:35.263 回答