Предотвратить полное выполнение php по запросу ajax - PullRequest
1 голос
/ 21 августа 2009

У меня есть сценарий ajax (jquery), который запрашивает index.php для вывода сгенерированных переменных. Этот index.php также является файлом, в котором вся страница генерируется и изначально заполняется данными. Как я могу позволить функции getNewData () только когда ajax запрашивает этот файл. Прямо сейчас он дублирует всю страницу и выводит ее так, что их всего два.

Ответы [ 4 ]

2 голосов
/ 21 августа 2009

Реализация ответа Dooltaz на нативном PHP будет выглядеть следующим образом:

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

Это, конечно, зависит от заголовка X_Requested_With, фактически отправляемого клиентским запросом XHR. Насколько я знаю, все основные библиотеки Javascript включают этот заголовок, но если вы переходите к реализации XHR, вам нужно добавить его.

2 голосов
/ 21 августа 2009
    function isAjax() {
            return env('HTTP_X_REQUESTED_WITH') === "XMLHttpRequest";
    }

Попробуйте это ... от CakePHP

1 голос
/ 21 августа 2009

Если я прав, вам нужно условно выполнить этот метод. Итак, отправьте асинхронный запрос, используя дополнительный параметр

.

$ получить ( '/ index.php = 1 Exec?);

В index.php

if($_GET['exec']==1){
     //execute
}
else {
  //render page - output html, etc
}
1 голос
/ 21 августа 2009

В идеале у вас, вероятно, не должно быть всего всего в файле index.php. Но вы, вероятно, можете передать переменную GET с помощью запроса AJAX и проверить это в файле PHP:

if ('requestType' == 'ajax')
{
    // return json etc
}
else
{
    // print page
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...