/ / CakePHPでAJAX GETリクエストとAJAX POSTリクエストをどのように区別しますか - ajax、cakephp

あなたはCakePHPのAJAX GETとAJAX POSTリクエストをどうやって区別しますか? - ajax、cakephp

私のログイン方法のための私のCakePHPのアプリでは、ユーザーがAJAX呼び出しを介してフォームを送信するときに使用するためのいくつかの異なることを行います if ($this->request->is("ajax"))

しかし、私もログイン方法を許可したいクイックログイン用のモーダルで表示されます。これもまたajax呼び出しです。しかし、フォームを表示するためのAJAX GETと実際のログインを行うためのAJAX POSTの違いをどのようにして検出するのですか

下記を参照してください私はネイティブの取得と投稿を検出することができますが、Ajaxのためにどのように私はCakePHPの違いを検出しますか?私はajaxイベントしか検出できず、タイプは検出できないようです。

NATIVE:

GET = if ($this->request->is("get"))
POST = if ($this->request->is("post"))


AJAX:

GET = if ($this->request->is("ajax"))
POST = if ($this->request->is("ajax"))

ありがとう

回答:

回答№1は2

溶液:

if ($this->request->is("get"))
{
if ($this->request->is("ajax"))
{
echo json_encode("ajax get"); exit;
}
else {
echo "Normal get"; exit;
}

}

if ($this->request->is("post"))
{
if ($this->request->is("ajax"))
{
echo json_encode("ajax post"); exit;
}
else {
echo "Normal post"; exit;
}
}

回答№2の場合は0

私が質問を理解したかどうかわからないが問題は、フォームデータがPOSTまたはGETのどちらかとして入ってくる可能性があることです。解決策はPOSTデータがあるかどうかを確認することです。そうであればPOSTを使用し、そうでなければGETからデータを取得します。 (または他の方法で)

フォームがPOSTとして送信されたのかGETとして送信されたのかに応じて機能が異なる動作をする必要がある場合は、単純にコントローラで2つの異なる機能を作成します。