我有以下操作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对此操作提出请求,它会把我踢出去。我发现这非常奇怪。如果我添加before_filter
以跳过身份验证,我不会被踢出去,但我当然不想跳过身份验证。我不明白为什么可以通过常规请求访问此操作,但不能访问ajax请求。
这里可能会发生什么?
(我在Rails 3.2.1上,如果重要的话。)
答案 0 :(得分:0)
好吧,在我花了很长时间把我的问题放在一起两秒后,我想通了。
ajax请求是POST
。切换到GET
使其正常工作。
有趣的是,它之前是POST
并且完全相同的JavaScript工作。我改变的唯一一件事就是我更新了我的jQuery版本,所以我猜它肯定与它有关。