【问题标题】:jQuery Ajax calls in Rails 3 getting 401 Unauthorized RequestRails 3 中的 jQuery Ajax 调用得到 401 Unauthorized Request
【发布时间】:2011-11-10 20:56:03
【问题描述】:

我有一个使用设计进行身份验证的 Rails 3.1 应用程序。我正在尝试通过 ajax 向 url 拨打电话。出于某种原因,我不断收到 401 Unauthorized access。我已经按照这里的教程http://henrik.nyh.se/2008/05/rails-authenticity-token-with-jquery 了解如何验证 jQuery 请求。请求的代码是

        $.get('/chromosomes.json', {sequence_start: '10', sequence_end: '100'},
        function(data){
                        alert(data)
       }, 'json');

奇怪的是在我看到的服务器上

于 2011 年 11 月 10 日星期四 15:51:33 -0500 开始为 127.0.0.1 获取“/chromosomes.json?sequence_start=10&sequence_end=100&_=1320958293654” ChromosomesController#index 作为 JSON 处理 参数:{"sequence_start"=>"10", "_"=>"1320958293654", "sequence_end"=>"100"} 10ms内完成

在我的控制器中,我有:

before_filter :authenticate_user!

def index

        respond_to do |format|
      format.html
      format.json  { render :json => @chromosomes }
    end
end

由于某种原因,真实性会话令牌没有传递给 Rails。如果我删除 authenticate_user!在过滤之前它工作正常!?很感谢任何形式的帮助。谢谢!

【问题讨论】:

  • respond_to do |format| format.html format.json { 渲染 :json => @chromosomes } 结束
  • nah - 您收到“未经授权”的响应 - 您需要向我们展示 before_filters 正在运行的内容。
  • 控制器中运行的唯一前置过滤器是:before_filter :authenticate_user!
  • 好的,不知道如何修复它,但该教程看起来很旧(2008 年)。这似乎是最近的:michaelhendrickx.com/…
  • 谢谢,我也试过了,但我仍然遇到同样的身份验证问题。

标签: jquery ruby-on-rails ajax


【解决方案1】:

我通过将 :token_authenticable 添加到我的用户模型来解决此问题。这允许用户通过会话令牌进行身份验证。

【讨论】:

    【解决方案2】:

    我正在使用 angularjs 进行开发以发送 REST 请求,因此我使用ng-rails-csrf gem 在发送的每个 ajax 请求中添加 csrf 令牌以进行身份​​验证。

    【讨论】:

      猜你喜欢
      • 2012-12-09
      • 1970-01-01
      • 2016-12-14
      • 2011-01-18
      • 2020-04-29
      • 2017-05-14
      • 1970-01-01
      • 2018-11-10
      • 2018-07-08
      相关资源
      最近更新 更多