我正在使用 Rails 2.3,我决定为 JSONP 提供支持。创建了一个全新的应用程序。然后运行脚本/生成脚手架用户名:字符串
这是我的整个环境.rb
RAILS_GEM_VERSION = '2.3.2' unless defined? RAILS_GEM_VERSION
require File.join(File.dirname(__FILE__), 'boot')
require 'rack/contrib'
Rails::Initializer.run do |config|
config.middleware.use 'Rack::JSONP'
end
当我访问 localhost:3000/users 时,我得到的只是一个哈希值。当我访问 localhost:3000/users.js?callback=show 时,我得到了很好的结果。
让我们看一下jsonp代码。我不明白为什么响应被包装在一个数组中。
我创建了另一个 Rack 中间件,我替换了这个语句
[status, headers, [response]]
有了这个声明
[status, headers, response]
现在一切正常。
我拒绝相信这是 rack-contrib 中的一个错误。
有人可以告诉我为什么响应被包装在一个数组中,以及我如何在我的应用程序中使用 rack-contrib。
我的应用程序的完整源代码在这里。只需克隆它并在 localhost:3000 上运行。