ci ajaxかページpostかを検出してデータをコミットする方法

1019 ワード

この例では、ciがajaxであるかページpostであるかを検出する方法について説明します.皆さんの参考にしてください.具体的な実現方法は以下の通りである.
一、問題:
プロジェクトはajaxからコミットされたデータがコミットされたデータなのか、ページのpostからコミットされたデータなのかを知り、異なるレベルの処理を行う必要があるからです.
二、解決方法:
phpでの解決策は次のとおりです.ajaxリクエストの場合、次の式の値は真です.

   $_SERVER["HTTP_X_REQUESTED_WITH"]=="XMLHttpRequest" 
 

PHPの環境変数です.
ciにおける処理方法:

   define('IS_AJAX', isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'); 
  
define("IS_POST", strtolower($_SERVER['REQUEST_METHOD']) == 'post');

THINKPHPを使っているときに定数ISが2つ内蔵されていたのを覚えています.AJAXとIS_POSTは、ciで使いたいと思ってしばらく調べたが見つからなかったようで、自動的に豊衣足食を手に入れるプロジェクトのconfig/constants.phpプロファイルに上の2行のコードを追加すると、すべての方法で直接呼び出すことができます.たとえば、次のようになります.

   if(IS_POST){ 
  
 ...
}
if(IS_AJAX){
...
}

本稿で述べたCIフレームワークのプログラム設計に役立つことを願っています.