【发布时间】:2016-04-13 19:05:43
【问题描述】:
我有一个用于页面预览的同步脚本。 preview 函数只是将数据发送到服务器,hookPreview 在单击时触发它,它应该在成功时附加响应数据。
window.Wiki =
preview: (raw_data) ->
preview_path = "/wiki/preview"
$.post preview_path,
"raw_data": raw_data,
(data) ->
$("#preview").html data.raw_data
"json"
hookPreview: (tab, textarea) ->
# Send data to controller on click
$(tab).bind "click", ->
res = Wiki.preview $(textarea).val()
console.log(res)
true
$(document).ready ->
Wiki.hookPreview($("#preview-tab"), $(".editor"))
我可以在控制台中检查响应res:Object {readyState: 1} 带有回调函数,但我无法调用res.status(在我的控制台中为 200)给我“未定义”。
首先,如何解析响应?其次,我想将我的脚本改进为异步风格(如mentioned here)。
编辑:
在控制器中:
def preview
# ...
respond_to do |format|
format.json
end
end
使用preview.json.erb:
<%= {:body => @preview }.to_json.html_safe %>
终端中的记录器显示服务器已完成并显示“200 OK”,因此问题出在脚本上,而不是在服务器端。
【问题讨论】:
-
使用
JSON.parse方法 -
@uzaif
data = $.parseJSON(res)抛出意外的令牌错误。 -
你有任何控制台错误吗?
-
没有错误,除了我无法获取响应对象的属性。
-
你检查了控制器中的 res 值吗?
标签: javascript jquery ruby-on-rails