我遇到的问题是传递给我的complete()回调函数的数据对象不是json对象,而是[Object object]。我可以在data.responseText中看到我的json响应字符串。
这是我的jQuery .ajax请求:
$.ajax({
url: 'api.php',
dataType: 'json',
data: {
command: "GetBlacklist"
},
type: 'POST',
error: function(jqXHR, textStatus, errorThrown)
{
messageDiv.append("Error: " + errorThrown + "<br />");
},
complete: function(json)
{
$('.blacklist textarea').text(json.message);
messageDiv.append("Blacklist loaded.");
}
});
以下是发送的回复:
{"message":"success","result":0}
它评估为有效的JSON,我从服务器发送正确的json内容类型头。难倒在这一个!
答案 0 :(得分:3)
complete
回调的签名为complete(jqXHR, textStatus)
,jqXHR
为您提供[对象]。
相反,您应该使用success(data, textStatus, jqXHR)
回调,如果请求成功,将会调用该回调,而这次data
将为您提供正确的回复。
更多信息请查看the manual。