【发布时间】:2012-11-02 01:09:03
【问题描述】:
我在我的 rails 项目中通过 $.ajax 请求 JSON 响应。
jQuery ->
testAjax()
testAjax = ->
$.ajax
url: "/gmap/test"
data: "id=2"
type: "GET"
dataType: "json"
complete: (data_response) ->
result = $.parseJSON(data_response)
alert(result.name)
我似乎得到了正确的 json 字符串(根据 Firebug 控制台),如下所示:
{"name":"Space Needle","latitude":47.620471,"longitude":-122.349341}
但是,我收到一个错误提示“TypeError: result is null”
如果我使用
alert(data_response.responseText)
在complete 函数中,我得到了 json 字符串。所以问题似乎是解析。 (???)
【问题讨论】:
-
返回肯定是字符串。如果使用 parseJSON 解析已经是 JSON 的内容(设置了正确的标头),则会引发该错误。
-
您不需要解析 JSON,设置
dataType: "json"会自动完成,这意味着您正在尝试解析 JavaScript 对象。 -
输入真实代码,而不是伪代码
-
这是咖啡脚本而不是伪代码。
-
@Korikulum 完整的回调不包含解析的 json 响应,它的第一个参数是 jqXHR 对象。 :
标签: jquery ajax ruby-on-rails-3 json coffeescript