1

我最近的任务是将 Intranet 系统从一台旧服务器移动到一台新服务器。它使用了很多 YUI 库,以及我没有经验的 javascript/json。当我尝试加载其中一个页面时(我无法将您链接到它,因为它的 Intranet)我收到这样的错误:(我试图打印出任何有帮助的变量或内容。

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 一无所知,如果您需要了解其他信息,请告诉我。

4

3 回答 3

2

您必须知道是什么o.responseText,因为o存在Object并不能真正显示所讨论的 JSON 字符串是什么。将警报更改为:

alert('e: ' + e + '\no.responseText: ' + o.responseText + '\ndata: ' + data);

可能有助于诊断问题。除非您解释什么是 JSON 字符串以及它来自何处,否则没有人可以回答您问题是否出在该页面上。

于 2012-08-02T10:37:23.767 回答
1

看起来 o.responseText 不是有效的 JSON - 您可以在调试中打印出来吗?

于 2012-08-02T10:35:40.337 回答
1

如果你能得到 responseText,你可以通过一个 JSON 验证器来运行它,比如http://jsonlint.com,它会让你知道错误的位置。

于 2012-08-02T10:38:13.050 回答