0

次のアクションがありますappointments_for_week

class StylistsController < ApplicationController

  def appointments_for_week
    stylist = Stylist.find(params[:id])
    date = Time.zone.parse(params[:date])
    appointments = stylist.salon.appointments_flat(stylist.id,
                                                   (date + 1.day).beginning_of_week.advance(:days => -1),
                                                   (date + 1.day).end_of_week.advance(:days => -1) + 1.day)
    respond_to do |format|
      format.json { render :json => @appointments }
    end 
  end 

本当に奇妙なことが起こっています。ログインしてからこのアクションのルートをブラウズするだけでは、何も起こりません。空白のページが表示されますが、これは私が期待するものです。その後、別のページに移動して更新すると、ログインしたままになります。もちろん、これは当然のことです。

ただし、このアクションで ajax を介してリクエストを行うと、追い出されます。これは信じられないほど奇妙だと思います。認証をスキップするために a を追加するbefore_filterと、追い出されなくなりますが、もちろん認証をスキップしたくありません。通常のリクエストではこのアクションにアクセスできるが、ajax リクエストではアクセスできない理由がわかりません。

ここで何が起こっているのでしょうか?

(私は Rails 3.2.1 を使用しています。念のため。)

4

1 に答える 1

0

わかりました、質問をまとめるのに永遠に費やした 2 秒後、私はそれを理解しました。

ajax リクエストはPOST. に切り替えると機能しGETました。

興味深いことに、POST以前とまったく同じ JavaScript が機能していました。私が変更したのは、jQuery のバージョンを更新したことだけなので、何か関係があるに違いないと思います。

于 2012-06-21T17:22:04.530 に答える