【发布时间】:2015-10-26 15:27:45
【问题描述】:
我有一个 Rails 应用程序,其中有一个返回 JSON 数据的控制器:
respond_to do |format|
format.html { render :html => data }
format.json { render :json => data.to_json }
end
如果我通过浏览器加载它,一切都很好。
我有一个简单的表单,我试图验证从 JSON 查找输入的数据。现在我被困在让 JSON 调用工作。
这是我的 JS(咖啡脚本):
$(document).ready ->
$('#validate-data').click ->
alert "hello!"
$.getJSON '/mycontroller/data/myparameter', (data) ->
obj = data
msg = []
for i of obj
msg.push i + ' = ' + obj[i]
alert msg.join('\n')
return
return
return
当我点击我的验证按钮时,我会弹出hello!,然后在稍作停顿后,我会弹出0 = [object Object]。
我的 http 调用产生如下数据:
[ { "query": "myparameter", "response": { "status": "ok", "err": [], etc...
我的印象是,在 getJSON 调用之后,数据被解析,你可以调用 alert data.response.status,你会得到一个弹出窗口 "ok"
我怀疑我在这里遗漏了一些明显或微不足道的东西,或者我根本没有掌握这一点。
【问题讨论】:
-
您似乎在迭代数据错误。您要检索
data的哪一部分? -
我在我看到的另一篇文章中添加了 for i 循环,以尝试确认我实际上是从我的 JSON 请求中获取数据。例如,我试图让 "status": "ok" 显示。我可以强制结果为 "status": "fail" 以确认它正在工作。
-
那么您现在遇到的问题是什么?
-
如果我添加
alert data.response.status什么都不会发生。如果我的 JSON 实际上正在返回数据,那应该不起作用吗? -
如我所见,您有一个数组。做
data[0].response.status
标签: jquery ruby-on-rails json