Ajax isteği üzerine tüm php yürütülmesini engellemek

4 Cevap php

Ben çıkış değişkenleri oluşturulan index.php sorar bir ajax komut (jquery) var. Bu index.php zamanda tüm sayfa oluşturulur ve başlangıçta verilerle doldurulur dosyasıdır. Nasıl sadece getNewData () işlevini sağlayabilirsiniz ajax istekleri bu dosya. Şu anda bu sayfanın tamamını ve bu yüzden her şeyin iki olduğunu çıkışları çoğaltır.

4 Cevap

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

CakePHP dan ... bu deneyin

Şöyle Dooltaz cevabı bir yerli PHP uygulama olacaktır:

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

Tabii bu, aslında müşteriler XHR isteği tarafından gönderilen X_Requested_With başlığında şarta. Bildiğim kadarıyla, bütün önemli Javascript kütüphaneleri bu başlığı dahil edebilirim, ama size XHR uygulanmasına yayıyoruz eğer, bunu eklemeniz gerekir.

İdeal muhtemelen tüm index.php dosyasındaki her şeyi olmamalıdır. Ancak, proably AJAX isteği ile bir GET değişkeni geçmek ve PHP dosyası olduğunu için kontrol edebilir:

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

Ben haklıyım Eğer şartlı bu yöntemi yürütmek gerekiyor. Yani ekstra bir param kullanarak uyumsuz bir istek gönderin

. $ (? '/ Index.php exec = 1) almak;

Index.php

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