繁体   English   中英

Rails 5:使用HTML(而非javascript)响应AJAX调用

[英]Rails 5: Respond to AJAX call with HTML (instead of javascript)

(发布版本5.1.2)

我想使用HTML而不是JavaScript来响应AJAX,其原因与堆栈溢出问题中概述的原因大致相同。

但是,我实际上无法使其工作。

我使用带有remote: true form_for通过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在哪里?

除非我完全误解了您想做什么,否则应该就是您要寻找的东西:

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

我想念什么吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM