2009-08-20 8 views
1

生成された変数を出力するようにindex.phpに依頼するajaxスクリプト(jquery)があります。このindex.phpは、ページ全体が生成され、最初にデータが入力されるファイルでもあります。 ajaxがこのファイルを要求するときに、どうすればよいのですか?今は、ページ全体を複製して出力するので、すべてが2つになります。ajaxリクエストでPHPの実行を完全に防ぐ

答えて

2
function isAjax() { 
      return env('HTTP_X_REQUESTED_WITH') === "XMLHttpRequest"; 
    } 

これを試してみてください... CakePHPの

+0

残念ながら私自身のフレームワークを使用しています。 –

1

から理想的には、おそらくすべてのindex.phpファイルのすべてを持つべきではありません。私は右だ場合は、条件付きでこのメソッドを実行する必要が

if ('requestType' == 'ajax') 
{ 
    // return json etc 
} 
else 
{ 
    // print page 
} 
1

:しかし、あなたはproably PHPファイルにAJAX要求でGET変数を渡すと、それをチェックできます。したがって、余分なパラメータを使用して非同期リクエストを送信してください。

$ .get( '/ index.php?exec = 1);で

のindex.php

if($_GET['exec']==1){ 
    //execute 
} 
else { 
    //render page - output html, etc 
} 
2

次のようにDooltazの答えのネイティブPHPの実装は次のようになります。

function isAjax() { 
    return $_SERVER['HTTP_X_REQUESTED_WITH'] === "XMLHttpRequest"; 
} 

このコースの、実際にクライアントによって送信されているX_Requested_Withヘッダ上の偶発的ですXHRリクエスト。私が知る限り、すべての主要なJavascriptライブラリにこのヘッダーが含まれていますが、XHR実装を使用する場合は、追加する必要があります。

関連する問題