コンテキスト: 私は Cakephp v2.3 を使用しており、XAMPP を実行しています。したがって、私のディレクトリ構造は次のとおりです。
C:\xampp\htdocs\cakephp\app\webroot
Cakephp にリダイレクトする ..\xampp\htdocs に .htaccess ファイルがあります (したがって、基本的に localhost と入力すると、localhost/cakephp にリダイレクトされます)。
これが私の問題の根源かもしれませんが、ケーキを機能させることができた唯一の方法です.
これを考えると、それまではすべて正常に機能していました... SSL経由でAjaxを使用して投稿しています。
問題: Ajax リクエストは https ページから発信され、別の https ページに投稿されます (したがって、ドメインの問題ではありません)。問題の兆候は、Post が「Get」に変更され、投稿されたデータがドロップされることです。リクエストを「Get」にするとうまくいきます(しかし、本当の意味でデータを投稿しているので、そうしたくありません)。両方のアクションで http を使用すると、機能します。このリダイレクトが発生しているのは、Apache が「/action」を「/cakephp/action」に書き換えているためだと思います
紛らわしい点: CakePhp before フィルターにデバッグがあり、そのメソッド (beforeFilter) にリターンを入れると、クライアント側の開発者ツールは、リクエストが Post であり、すべてのデータが存在し、サーバーの応答がデバッグ行であると表示します。ターゲット アクションの最初の行として return を配置すると、問題が発生します (IE: クライアント ツールは、要求がデータのない Get であると表示し、イニシエーターは jQuery コマンドではなくターゲット アクションです)。
これは私を混乱させます。なぜなら、それが beforeFilter に入ると、Apache がそれをリダイレクトしなくなったと仮定するからです。また、CakeBook のドキュメントによると、 beforeFilter が完了した後に呼び出される次のメソッドがターゲット アクションであると想定しています。しかし、何らかの理由で、beforeFilter の完了と targetAction の開始の間に、リクエストが /cakephp/action にリダイレクトされます。
関連コード:
.htaccess at ..\xampp\htdocs
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ cakephp/app/webroot/ [L]
RewriteRule (.*) cakephp/app/webroot/$1 [L]
</IfModule>
勇敢なヘルパーに前もって感謝します!