2013-02-23 1 views
0

Я использую структуру Yii для разработки базового приложения CRUD. Я заметил, что автоматически сгенерированный код в функции действия часто содержит следующие строки:

// if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser 
if(!isset($_GET['ajax'])) 
    $this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('admin')); 

Часть я не могу понять, что этот код работает, даже когда Я делаю AJAX POST, и даже когда параметр «ajax» не появляется в запросе, когда я исследую его с помощью Firebug или Fiddler. Сервер делает другой запрос GET для себя или что-то около $_GET, что я не понимаю?

+0

Можете ли вы дать нам ссылку, где это происходит, по вашему мнению? – Oliver

+0

Можете ли вы показать, как вы делаете пост ajax? –

+0

Теперь я могу увидеть параметр ajax в POST. Но должен ли быть доступен с использованием массива $ _GET? – regularmike

ответ

0

http://www.yiiframework.com/forum/index.php/topic/19324-whats-isset-getajax-for-in-the-generated-code/

Похоже, он установлен на Yii, если вы делаете вызов Ajax, используя Yii библиотеки

+0

Да, это так, и я вижу это сейчас в запросе. Часть, с которой я запутался, - это то, почему они используют '$ _GET' для проверки размещенного параметра. Это работает как для GET, так и для POST? – regularmike

+0

Подумайте, что он используется для запросов GET (при обработке перераспределения страниц/сетки, а также для обработки удаления. Чтобы упростить их код, я не думаю, что они различают ... – acorncom

+0

Вот что мне интересно. Does $ _GET все еще работает даже если оно опубликовано? Потому что удаление разрешено только через POST, и эта строка определенно появляется в действии удаления. – regularmike