我最近的任务是将内部网系统从一台旧服务器迁移到一台新服务器。它使用了很多YUI库,以及我没有经验的javascript / json。当我尝试加载其中一个页面时(我无法将其链接到它,作为其内部网),我得到一个这样的错误:(我试图打印出任何有帮助的变量或事物。
e: SyntaxError: parseJSON
o: [object Object]
data: undefined
此错误来自以下try / catch:
var loadData = function(data) {
if(data)
data += '&offset=' + offset;
else
data = 'offset=' + offset;
var callback = {
success: function(o) {
try {
var data = YAHOO.lang.JSON.parse(o.responseText);
} catch(e) { alert('e: ' + e + '\no: ' + o + '\ndata: ' + data}
我真的不知道json是什么,但我假设它没有从某个地方得到(正确的)数据。问题出在本页或其他地方吗?
编辑:我很感激这可能不是解决问题所需的足够信息,我对JSON / YUI一无所知,只要告诉我是否需要了解其他内容。
答案 0 :(得分:2)
您必须知道o.responseText
是什么,因为o
Object
并未真正显示有问题的JSON字符串。将警报更改为:
alert('e: ' + e + '\no.responseText: ' + o.responseText + '\ndata: ' + data);
可能有助于诊断问题。除非你解释JSON字符串是什么以及它来自何处,否则没有人能回答你问题是否在该页面上。
答案 1 :(得分:1)
看起来o.responseText无效JSON - 您可以在调试中打印出来吗?
答案 2 :(得分:1)
如果你可以开始使用responseText,你可以通过像http://jsonlint.com这样的JSON验证器运行它,它可以让你知道错误的位置。