[英]console.log not printing the response
我有一个函数,它通过服务器调用另一个函数,并返回一个要在浏览器的日志窗口中打印的字符串,该函数看起来像:
function getErrorInfo() {
setTimeout(function () {
$.getJSON('Get/ErrorInfo', function (responseText) {
console.log("Log: "+responseText);
});
}, 5000);
}
getErrorInfo();
服务器端的函数确实会命中并返回有效的字符串,但浏览器的窗口中未显示任何内容。此外,服务器端的函数每5秒必须命中一次。 但这只会让他准时,而不会再次。
请在这里解释我做错了什么。
您的基本问题是,您需要正确格式化JSON才能获取任何结果。 您的结果(上述)为:
3/8/2014 5:27:16 PMSystem.NullReferenceException: Object reference not set to an instance of an object. at movie.Models.Genre.GetPosts(Int32 min)
这不仅是异常文本,而且不是有效的JSON。 JSON格式在此处有完整描述 。 建议不要从服务器获取静态JSON文件,而应该调用真实的服务。 然后,您知道数据是正确的。
旁注:这里的另一个问题是如何从getJSON
打印OBJECT结果。 当您尝试使用“ Console.log”打印对象时,会将其转换为字符串,这可能不会显示您想要的内容。 您可能应该将日志语句更改为:
console.log(responseText);
至少在chrome中,控制台窗口将让您浏览对象的内容,这可能会很有帮助。 在笔记和上面的解决方案之间,我认为您应该拥有它。 祝你好运!
使用$.getJSON()
,返回结果必须是有效的JSON
字符串,这意味着它必须可解析为对象或数组。 在这种情况下,您可以简单地使用$.get()
,它将自动检测返回数据类型,或者使用$.ajax()
并设置dataType: plain
如果您想跳过JSON要求。
关于保持日志运行的第二个问题,您可以从setTimeout()
或回调内部调用getErrorInfo()
,它将继续运行:
function getErrorInfo() {
setTimeout(function () {
$.getJSON('/echo/json/', function (responseText) {
console.log("Log: "+responseText);
getErrorInfo();
});
}, 5000);
}
getErrorInfo();
在我看来,在这种情况下,它比setInterval()
更好,因为它可以备份并最终导致覆盖调用,并且错误可能会乱序显示。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.