如何以正确的方式显示AJAX检索的HTML代码?

时间:2014-05-18 08:37:24

标签: jquery html ruby-on-rails ajax parsing

我正在使用Rails 4和包含的jQuery库。当我必须在页面上显示AJAX检索的HTML代码时,我遇到了麻烦。也就是说,在我看来,我有以下代码:

# NOTES
#
# In my config/initializers/mime_types.rb file I have
# Mime::Type.register_alias 'text/html', :custom
#
# In my controller action I have:
#
# respond_to do |format|
#   format.custom { render(:partial => 'my_partial', :formats => :html) }
# end

link_to('show comment', comment_path(@comment, :format => :custom), :remote => true, :id => 'css_id')

$('#css_id').on('ajax:success', function(event, xhr, status) {
  $(this).html(xhr)
});

当AJAX请求成功时,输出代码显示为如下所示(注意:<b></b>未进行HTML解析):

This is the <b>response html</b>.

通过使用FireBug,我可以看到响应包含:

<div>This is the &lt;b&gt;response html&lt;/b&gt;.</div>

如何让它以正确的方式显示<b></b>?也就是说,如何将这些评估为HTML代码?

2 个答案:

答案 0 :(得分:0)

尝试使用format.js。例如:

respond_to do |format|
  format.js {
    render partial: "...", layout: false, locals: { ... }
  }
end

答案 1 :(得分:0)

我必须在服务器端运行html_safe方法,如下所示:

"This is the <b>response html</b>".html_safe

谢谢,无论如何。