我有一个Rails 3.2.21应用程序,该应用程序要求用户登录才能执行多项操作(例如,跟随另一个用户)。
问题是我仅将登录和注册页面 切换为 https ;该应用程序的其余部分仍为http(在这两个页面上,使用rack-ssl-enforcer gem至301从http-> https重定向到这两个页面)。通过Ajax打开模式以显示登录或注册时,它不起作用。在Rails日志中显示:
WARNING: Can't verify CSRF token authenticity
在Chrome中,控制台显示:
Failed to load https://mydomain/signup: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://mydomain' is therefore not allowed access.
代码如下所示。单击该链接以跟随用户将运行以下jQuery代码:
$.ajax({
type: "GET",
url: "/follow/" + $(this).data("follow-id")
})
FollowsController
具有before_filter :login_required
,并且login_required
中的ApplicationController
方法如下:
def login_required
redirect_to "/signup" and return
end
没有登录和注册页面为https的情况,一切正常。当我将它们切换为https时,此问题逐渐蔓延。
编辑:
已经尝试过here发布的解决方案,但无济于事。