我想每隔5秒检查一次服务器的回答。但是我在$ .ajax中的成功功能是行不通的。虽然ajax发送请求并获得响应。由于功能每5秒运行一次并且响应在1秒内收到,因此不会超过时间限制。 如果我在$ .ajax之后放入checkMyCreatedGame函数,它确实有效但成功函数没有。
var checkMyGame;
checkMyGame =setInterval(checkMyCreatedGame,5000);
var checkMyCreatedGame = function(){
$.ajax({
url :'../cgi-bin/lobby.py',
type :"GET",
cache :false,
data {
"checkMyGameId":createdGameId,
"player":playerName
},
dataType:"json",
success:function(jsonData){
console.log(jsonData)
}
});
};
当我运行此代码时,这是我的firebug控制台日志(不要注意上面的内容):
以下是相同的屏幕截图,但未通过stackoverflow调整大小:https://i.stack.imgur.com/e9HBa.png 正如您所见,成功函数内的console.log未被执行。
答案 0 :(得分:3)
在你的AJAX调用中,你告诉jQuery期望JSON数据:
dataType:"json",
然后您的服务器返回非JSON数据:
waiting
然后jQuery尝试将其解析为JSON,并且不出所料,失败了。如果你告诉jQuery期待文本,它将正常工作:
dataType:"text",
这样做的消息是:如果你发现AJAX调用无声地失败,请放入error
处理程序。如果有,你会收到一条消息,告诉你有{{1} }}