2012-06-28 30 views
0

我有一个Rails 3.2应用程序,我试图调试一个奇怪的ssl问题。ssl_requirement仅在生产上失败,仅在两页上

我在整个我的应用程序页面缓存,并保持动态内容我正在做Ajax请求更新某些方面。

所有被高速缓存的页面都应该只被http请求。当一个ssl请求被创建时,除了其中的两个都被重定向到http。

问题是,这两个页面ArtistsBlog无法重定向回http,并且刷新内容的ajax请求被取消。据我所知,它被取消是因为它将普通的http看作是一个不同的站点,并且你不能在ssl下向另一个站点发出ajax请求。

设置本地签名证书没有帮助。在开发过程中,这两个页面的行为恰当。我还使用AWS ELB,其中ssl终止于负载均衡器并转到端口80,而且似乎也正常工作。

我可以强制这两个页面重定向到http每次,但我更愿意深究这一点。

我正在使用ssl_requirement来执行应用级别重定向。

我正在寻找如何发生这种情况的想法。我已经梳理了我的代码库,并且在应用程序级别找不到任何可以实现此目的的任何内容。我不认为我的apache虚拟主机是完美的,但没有任何关于这两个页面的东西。任何人都知道这可能发生在堆栈中的哪个位置?

编辑:

终于明白,因为页面完全缓存,请求只打了Apache和从来没有哪里会被重定向的应用程序。这让我质疑为什么Ajax请求被取消。 Ajax请求位于同一个域但未加密。这不应该仅仅是作为'不安全内容'的警告吗?我正在使用jQuery getScript来加载动态内容。

回答

0

那么,这将在愚蠢的错误的历史上下降,但我想我会留下来帮助其他人谷歌搜索。

简单的答案是我的ajax调用不被允许通过ssl连接。如果您的ssl_requirement具有ssl_allowed方法,请确保调用加载动态内容的ajax方法通过ssl。否则,请求将被取消,或者它将获得302重定向。

相关问题