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"
。为什么?
答案 0 :(得分: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)
答案 1 :(得分:2)
添加dataType:“text”并使用success()
更改complete()function ajaxsubmit(){
$.ajax({
url: "/update",
type: "POST",
dataType: "html"
}).success(function(data) {
$('#result').html(data);
});
}
答案 2 :(得分: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