【发布时间】:2013-12-02 01:37:08
【问题描述】:
我正在使用 Rails 4 构建一个 Web 应用程序,我偶然发现 Rails 控制器和 JQuery 之间存在一些奇怪的行为,我不确定是因为我做错了什么,还是真的对 Rails 由 JQuery 返回的 JSON 有误解.请参阅以下咖啡脚本:
咖啡脚本:
$.get('/get_experiment', (data) ->
console.log 'Success:'
console.log JSON.parse data
).error (data) ->
console.log 'Failure:'
console.log JSON.parse data.responseText
我们只是通过 GET 调用控制器的方法,处理成功和失败并显示返回的数据。
控制器:
def get_experiment
respond_to do |format|
format.js { render json: {} }
end
end
这个控制器只是简单地回复一个空的哈希。
运行此示例时,控制台会显示带有“Failure”文本的空 JSON,这显然表明它认为 JSON 格式不正确。
我不明白为什么空哈希会被视为格式错误的 JSON。如果你把它替换成render json: {foo: 'bar'},它仍然会调用error方法。
【问题讨论】:
-
我试过了,效果很好(显示成功文本和解析的 JSON 哈希)。是否有其他代码干扰了您的响应?也许是 before_filter?
标签: jquery ruby-on-rails ruby json coffeescript