(Rails版本5.1.2)
我想用HTML而不是javascript响应AJAX的原因与this堆栈溢出问题中概述的原因相同。
然而,我实际上无法让它发挥作用。
我正在使用form_for
和remote: true
通过AJAX发送请求。请注意,我还尝试了data: {type: :html}
。
我的控制器操作具有行render layout: !request.xhr?
并具有关联的视图。我希望将此视图发送回客户端。
然而客户端代码:
$("form").on('ajax:success', (e, data, status, xhr) ->
console.log xhr.responseText #using console.log data produces same result
)
给出:
Turbolinks.clearCache()
Turbolinks.visit("http://localhost:3000/...", {"action":"replace"})
HTML在哪里?
答案 0 :(得分:0)
除非我完全误解你想做什么,否则这应该是你想要的:
<强>的Javascript 强>:
$.ajax({
// remember to add this route to your routes file
url: "products/ajax_render",
success: function(data){
$('.some_div').html(data['html'])
},
});
Ruby on Rails :
def ajax_render
# render some view and store it in a variable
html = render "products/your_view"
# return it inside the json response
render json: { html: html }
end
我错过了什么吗?