0
在我的轨道4的项目,我有一个POST和jQuery这样的(注意,咖啡脚本)提交资料:轨道4:应对阿贾克斯后会导致错误的渲染响应
post_data =
site_id: site
url: '//' + $('#host-holder').data('host') + '/' + key
$.post("/sites/" + site + "/images",post_data, (success) ->
#successful_post
).fail((xhr, textStatus, errorThrown) ->
#post failed
)
在我控制器,如果我这样做:
respond_to do |format|
format.js {render nothing: true}
end
提交后的优秀作品(在AJAX客户端成功运行的回调),但如果我这样做:
respond_to do |format|
format.js {render json: @image.to_json, status: :created}
end
它失败(在Ajax客户端运行失败回调)。
为什么?我在回应ajax请求时做错了什么? (注意:服务器端没有错误报告)
编辑:错误是“parsererror
”,我其实有整个对象!它说"missing ; before statement"
...这是响应对象:"{"id":24,"url":"<EDITED FOR SECURITY>","thumbnail":null,"status":null,"site_id":28,"created_at":"2014-10-05T02:53:50.030Z","updated_at":"2014-10-05T02:53:50.030Z","quality":"good"}"
控制台中的故障描述是什么? – 2014-10-05 02:45:14
@ControlFreak请参阅我的编辑;我会假设在我的控制器中的@ image.to_json会构造正确的json? – faboolous 2014-10-05 03:01:29
您可以使用json验证器(如jsonlint)检查您的json是否正确。你在响应中将'content-type'头部设置为'application/json'吗? – 2014-10-05 03:03:08