0

奇妙なsslの問題をデバッグしようとしているRails 3.2アプリがあります。

私はアプリ全体でページをキャッシュしており、動的コンテンツを維持するために、特定の側面を更新するために ajax リクエストを作成しています。

キャッシュされたすべてのページは、http によってのみ要求されることになっています。2 つを除くすべてが、ssl 要求が行われたときに http にリダイレクトされます。

問題は、アーティストブログの 2 つのページが http にリダイレクトされず、コンテンツを更新するための ajax リクエストがキャンセルされていることです。私の知る限り、通常のhttpを別のサイトと見なし、sslで別のサイトにajaxリクエストを行うことができないため、キャンセルされています。

ローカルの署名付き証明書をセットアップしても役に立ちませんでした。開発中、これら 2 つのページは適切に動作しています。また、SSLがロードバランサーで終了し、ポート80に接続するAWS ELBも使用していますが、これも適切に機能しているようです。

毎回、これら 2 つのページだけを強制的に http にリダイレクトすることもできますが、むしろ、この問題の根底にたどり着きます。

アプリレベルのリダイレクトを行うために ssl_requirement を使用しています。

これがどのように起こるかについてのアイデアを探しています。私は自分のコードベースをくまなく調べましたが、アプリ レベルでこれを実現するものは何も見つかりません。私の apache vhost は完璧ではないと思いますが、この 2 つのページだけに関連するものは何もありません。スタックのどこでこれが発生している可能性があるかの手がかりを得た人はいますか?

編集:

最後に、ページが完全にキャッシュされているため、リクエストは apache にのみヒットし、リダイレクトされるアプリケーションにはヒットしないことがわかりました。これは、Ajax リクエストがキャンセルされる理由を疑問に思います。Ajax リクエストは同じドメインに向けられていますが、暗号化されていません。それは単に「安全でないコンテンツ」の警告として表示されるべきではありませんか? jquery getScript を使用して動的コンテンツをロードしています。

4

1 に答える 1

0

まあ、これは愚かな間違いの歴史に残るでしょうが、私は他の人がグーグルするのを助けるためにそれを任せたいと思いました。

簡単な答えは、私のajax呼び出しがSSL接続を介して許可されていなかったということです。ssl_requirementにメソッドssl_allowedがある場合は、動的コンテンツをロードするために呼び出すajaxメソッドがsslで許可されていることを確認してください。それ以外の場合、リクエストはキャンセルされるか、302リダイレクトを取得します。

于 2012-06-28T18:46:23.063 に答える