ruby-on-rails - Mechanize :未登录本站

标签 ruby-on-rails ruby ruby-on-rails-4 mechanize

我正在尝试使用 gem 授权到其他站点 mechanize

我的代码:

  def login_zenit
    agent = Mechanize.new
    agent.get('http://mobile.zenitbet.com/') do |p|
      f = p.forms.first
      f.login = 'login'
      f.fields[1].value = 'password'
      f.submit
    end
    agent.get('http://mobile.zenitbet.com/')
    redirect_to root_url
  end

问题是当我运行 login_zenit 时它不起作用 - 我没有在 Web 浏览器中授权该站点。尽管如果我在 rails console 中运行此代码它完美地工作。我在哪里做错了?可能 redirect_to root_url 有问题?

谢谢!

最佳答案

一般来说是不可能的。为此,访问您的应用程序需要为 mobile.zenibet.com 设置适当的 cookie。
您确实拥有这些 cookie 值 - 它们位于 Mechanize 对象内,但即使您提取它们,您也无法将它们设置在正确的域中。如果您的应用程序是从 foo.com 提供的,那么浏览器将允许您在 foo.com 或其任何子域上设置 cookie,但它不会让您在另一个任意域上设置 cookie(请参阅第 5.3 节中的第 5 点) rfc )
除非您的应用程序在 zenibet.com 的子域上运行,否则我认为您不走运

关于ruby-on-rails - Mechanize :未登录本站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24301866/

相关文章:

ruby-on-rails - 如何捕获 popen4 找不到的命令

ruby-on-rails-4 - 使用 capistrano 3 部署到 Unicorn 服务器时出错

mysql - 在 Rails4 中将数据库从 sqlite3 切换到 mysql 时出现 strftime 错误

ruby-on-rails-4 - 我如何将 ruby​​ on Rails 与 Windows 上的 sql server 连接起来

ruby-on-rails - Paperclip:与 mailboxer gem 集成

ruby-on-rails - 在 Rails 4 中禁用 has_secure_password password_confirmation 检查

ruby - WebSocket 不是一个类(类型错误)

ruby-on-rails - 在 rails 上验证数组 mongoid 和 ruby

ruby-on-rails - 以 rails activerecord 样式编写嵌套查询

ruby-on-rails - 使用 Rails 3 的乘客 3 不会从 vendor/加载 gem