【发布时间】:2013-11-13 09:42:50
【问题描述】:
我正在使用jQuery.getJSON 获取一些数据。我有一个名为helpdesk.data.STATUS.MESSAGE.NOTLOGGEDIN 的对象,它是在普通脚本标签中创建的。在调用getJSON 返回的JSON 中,我试图引用helpdesk.data.STATUS.MESSAGE.NOTLOGGEDIN。我正在使用 .done 方法来捕获 JSON 并对其进行处理,并使用 .error 来捕获任何错误。
返回的 JSON 看起来完全有效,但它进入 .error 函数时的状态为 200(OK)。
如果我将对对象的引用更改为字符串,它将进入.done 方法。有谁知道一种方法来引用页面中已经存在的对象,从返回的 JSON 触发 getJSON 请求?
返回的 JSON 是:
{"builds": {"status": helpdesk.data.STATUS.FAILURE, "messages": [helpdesk.data.STATUS.MESSAGE.NOTLOGGEDIN]},"details": {"status": helpdesk.data.STATUS.FAILURE, "messages": [helpdesk.data.STATUS.MESSAGE.NOTLOGGEDIN]}}
最终代码:
$.ajax("/helpdesk/resources/js/json/data.json.php", {"data": {"data": "styling-builds,details", "update": "update", "nojson": "nojson"}}).done(function(data) {
eval("data = " + data);
});
【问题讨论】:
-
请注意,您的 JSON 无效(尝试将其复制/粘贴到 json.parser.online.fr)
-
我引用的对象有 4 个错误。我正在尝试做的是在调用 getJSON 之前引用页面中已经存在的对象。
-
嗯,也许使用 $.post(或 $.ajax)并将 dataType 设置为 json,然后使用 JSON.parse 或类似的东西就可以了。
-
我认为在 JSON 响应中引用变量是不正确的
-
好的,但问题是如果我们能够实现这一点会更好,因为所有可能的错误都已经存储在一个对象中。我会尝试 $.post 方法,看看我是否可以使用它
标签: javascript jquery json getjson