我想從頭開始使用jQuery建立一個網絡聊天。我現在可以成功將消息發送給我的(也是自建的)API,現在我想輪詢新消息。我使用下面的函數執行此操作。問題是,我似乎無法對返回的json做任何事情。我試過JSON.parse()
和jQuery.parseJSON()
,但他們都沒有工作。根本沒有警報彈出。當我使用簡單的alert("with a simple string here");
它確實有效,所以它確實達到了成功的程度。如何顯示jquery POST請求的結果?
function updateConversation(){
if(!instance) {
instance = true;
$.ajax({
type:"POST",
contentType: "application/json",
accepts: "application/json; charset=utf-8",
url: "/api/support/" + "1",
data: JSON.stringify({
'action': 'GET_MESSAGES',
'user_id': user_id,
'last_message_id':last_message_id
}),
dataType: "json",
success: function(data) {
var usingjsonparse = JSON.parse(data);
alert(usingjsonparse.messages);
var usingjqueryparse = jQuery.parseJSON(data);
alert(usingjsonparse.messages);
if (data.text) {
for (var i=0; i< data.text.length; i++) {
$('#conversation').append($("<P>"+ data.text[i]));
}
}
document.getElementById('conversation').scrollTop = document.getElementById('conversation').scrollHeight;
instance = false;
// last_message_id = data.id;
}
});
} else {
setTimeout(updateConversation, 1000);
}
}
我想到JSON的是這樣的:
{"messages": [{"is_supporter": True, "text": u"aergaerg", "id": 1, "created": "1391609527"}, {"is_supporter": True, "text": u"eargaerg", "id": 2, "created": "1391609551"}, etc.]}
有誰知道我怎麼可以查看數據的原始字符串被退回?我試過data
,data.messages
,data.messages[0]
,和一個十億其他變化,但無濟於事。當我alert(typeof(data));
我得到object
。
有人知道我在做什麼錯嗎?歡迎所有提示!
PS。有沒有人知道更簡單的方法來看看發生了什麼,而不是總是提醒一切?
'data.responseText'。拯救自己的痛苦和小故障的世界,並建立在Meteor.js。 –
當你傳遞'dataType:'json'到函數時,響應已經被解析。你有沒有嘗試過看開發人員工具中的'data'對象? – Phylogenesis
您正在返回的響應已被解析爲json,因爲您設置了'dataType:json'您應該執行'console.log(data)'來查看您當前正在返回的內容 – Ibu