AjaxController yii - PullRequest
       19

AjaxController yii

0 голосов
/ 29 октября 2011

Я создаю зависимый выпадающий список, и у меня все работает нормально.

CHtml::dropDownList('country_id','', array(1=>'USA',2=>'France',3=>'Japan'),
array(
'ajax' => array(
'type'=>'POST', //request type
'url'=>CController::createUrl('ajax/subcategories'),
'update'=>'#city_id', //selector to update
)));

AjaxController.php

class AjaxController extends Controller
{
...
}

Теперь я хочу скрыть URL "mydomain.com/ajax/subcategories". Если кто-то попытается получить прямой доступ к этому URL, появится страница с ошибкой 404. Это возможно?

1 Ответ

0 голосов
/ 30 октября 2011

Если вы отправляете ajax-запрос POST (который выглядит так, как вы), вы можете заключить свое действие в проверку следующим образом:

class AjaxController extends Controller {
  public function actionSubcategories() {
    if(Yii::app()->request->isPostRequest) { // check if POST
       // your action logic goes here
    } else { // direct URL request will be GET, so show error
      throw new CHttpException(404, Yii::t('app', 'Invalid request.'));
    }
  }
}

Я буду выполнять обычный «прямой» запрос для этого URL.быть запросом GET, так что это покажет им ошибку 404.

...