我有一个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"
我怀疑我在这里遗漏了一些明显或微不足道的东西,或者我根本没有掌握这一点。
答案 0 :(得分:1)
我可以从你提到的问题data
看到,你在数组中有一个哈希。
[ { "query": "myparameter", "response": { "status": "ok", "err": [
您访问错误,这就是为什么您没有按预期的那样获得输出。您必须执行data[0].response.status
,这是您要在comment中说明的结果。