2

次の方法で手動のjQuery AJAXリクエストを実行しようとしています:

$("#user_plan_id").change(function() {
    $("#plan_container").load('/plans/' + this.value);
});

「rails.js」ファイルがヘッダーに含まれており、「<%= csrf_meta_tag %>」があります。

ログから、リクエストがサーバーに到達していることがわかります (ただし、認証トークンがなくても... rails.js はこれを行いますか?)、応答は 200 ではなく 302 (検出) であり、実際にはデータは取得されません。レンダリングされます。

何か案は?

編集:最初のリクエストがリダイレクトされ、適切な部分がリダイレクトでレンダリングされることがわかりました。ただし、2 番目の応答の本文 (クライアント側) はまだ空です。jQuery は最初の応答を使用し、リダイレクト用にリスナーが設定されていないと推測しています。どうすればこれを回避できますか?

また、別の注意: リクエストを行っているページは HTTPS ページです。

これが私のログの内容です:

Started GET "/plans/221168073" for 127.0.0.1 at Tue Jun 15 01:24:06 -0400 2010
  Processing by PlansController#show as HTML
  Parameters: {"id"=>"221168073"}
DEPRECATION WARNING: Using #request_uri is deprecated. Use fullpath instead. (called from ensure_proper_protocol at /Users/ernestsurudo/Sites/vidfolia/vendor/plugins/ssl_requirement/lib/ssl_requirement.rb:57)
Redirected to http://vidfolia.com/plans/221168073
Completed 302 Found in 1ms

そのページの SSL 要件をオフにすると、機能することがわかりました。とはいえ、その理由はまだわかりません。だから私の質問は次のとおりだと思います:回避策は何ですか?

4

1 に答える 1

1

ひょっとして、どこかで :protocol を "http" に設定していませんか?

于 2010-07-28T12:43:36.527 に答える