jquery - 使用 jQuery 读取存储在我的响应 header 中的 JSON

标签 jquery ruby-on-rails

我希望能够使用 jquery 读取应用程序的响应 header ,具体来说,我将 header “X-Messages”设置为 Rail 的 Flash 消息哈希的字符串表示形式。

我的问题与此类似: https://stackoverflow.com/a/2729454/103739

但是,我有一个主要区别,即这不是 JSON 响应。我只想使用 jQuery 读取 HTML 页面中返回的 header ,并为 JSON 对象中的每个项目记录一些内容。

这是我在 Controller 中所做的事情:

class ApplicationController < ActionController::Base
  after_filter :flash_to_headers

  # ...

  def flash_to_headers
    response.headers['X-Messages'] = flash.to_hash.to_json.to_s
  end
end

然后这就是我被难住的地方,我想在页面加载时获取这个 JSON 对象并只显示常规的 alertconsole.log :

$(document).ready(function() {
  var messages = document.getResponseHeader('X-Messages');
  console.log(messages);
});

好吧,现在显然 getResponseHeader() 不是 document 上的函数,但我怎样才能完成这个?

最佳答案

HTML DOM 旨在访问和操作 HTML 文档。

HTTP header 存在于 HTTP 协议(protocol)中,而不是 HTML 文档中。

我认为你不能从 HTML DOM 获取 HTTP header ,因为你可以通过 FTP 或其他方法获取 HTML DOM,你是如何从 FTP 获取 HTTP header 的?

如果您要获取此 header ,则必须使用 ajax 调用来获取它。

但是,有一个异常(exception):如果您正在编写 chrome(或其他浏览器)扩展程序,则可以从 chrome API 获取 header 。

关于jquery - 使用 jQuery 读取存储在我的响应 header 中的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13831962/

相关文章:

基于 jquery 的单页网站中多个页面的导航

ruby-on-rails - validates_email_format_of 抛出未知验证器 : 'EmailFormatValidator' in rails 4 engines

ruby-on-rails - 在 Rails 中跳过 before_filter

ruby-on-rails - 在任何来源中都找不到 coffee-script-source-1.1.3

ruby-on-rails - 仅包含某些属性

javascript - 如何创建复杂的 JavaScript 结构

javascript - 如何在 PHP 中获得丰富的控件?

javascript - 我如何链接这些功能,以便一旦完成,下一个就会触发?

javascript - 如何在 HTML 中包含 jQuery

ruby-on-rails - 我无法让 rails 插件 wicked_pdf 工作