javascript - 如何显示 Rails AJAX JSON 响应中的文本 - Javascript 正在返回 [object HTMLDocument]

标签 javascript ruby-on-rails ajax

我有一个 Rails 应用程序,我在其中创建了一个 AJAX/JSON Controller 来在 View 中执行一些动态 HTML 更新。我遵循了这个指南:https://www.rubyguides.com/2019/03/rails-ajax/

我进行如下调用:../lated.json?vendor_id=1&budget_id=1,它返回我想要更新的原始 HTML 部分(只是一堆或表行)。

我的通话如下所示:

    Rails.ajax({
      url: url,
      type: 'GET',
      success: function(data) { 
        document.getElementById("related").innerHTML = "data"
//        alert(data)
      }
    })

如果我在浏览器中手动查看 JSON 请求,则 HTML 输出符合预期。但是,当我尝试替换 HTML 甚至查看测试警报中的数据时,我会返回 [object HTMLDocument]。我遵循的指南使用 data.html 来提供innerHTML,但这对我不起作用。不确定这是否是 UJS/JQuery 问题。

如何使用 JSON 调用中的原始文本设置 DOM 元素?

最佳答案

您可以使用 JSON.stringify 函数将原始文本转换为 html:

document.getElementById("related").innerHTML = JSON.stringify(data)

关于javascript - 如何显示 Rails AJAX JSON 响应中的文本 - Javascript 正在返回 [object HTMLDocument],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59290516/

相关文章:

ruby-on-rails - 如何使用 button_to 提交表单?

javascript - 不同页面的ajax评论系统

javascript - 如何将样式分配给 Javascript 变量?

javascript - 从外部调用 AngularJS Controller 函数

ruby-on-rails - Rails - 如何在 View 中引用命名空间表属性

javascript - 我如何管理这个背景图像和类(class)的悬停行为?

css - 将 "Remember Me"和复选框对齐在同一行(Devise 的 CSS 问题)

javascript - jQuery AJAX - 基于 PHP 页面数据的条件成功结果

javascript - 获取加载到 <div> 容器中的页面的链接

javascript - Twitter Bootstrap 风格默认 JS 警报