2011-10-29 2 views
0

Im 종속 드롭 다운을 작성하는 경우 & 모든 것이 정상적으로 작동합니다. AjaxController.phpAjaxController yii

class AjaxController extends Controller 
{ 
... 
} 

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 
))); 

는 지금은 URL "mydomain.com/ajax/subcategories"을 숨기려. 누구든지이 URL에 직접 액세스하려고하면 404 오류 페이지가 표시됩니다. 이것이 가능한가? 당신이 (당신이 모양) 후 아약스 요청을 발행하는 경우

답변

0

,이 같은 검사에서 액션을 포장 할 수 있습니다 : 해당 URL

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.')); 
    } 
    } 
} 

나는 정기적으로 "직접"요청이 될 것입니다 GET 요청이므로 404 오류가 표시됩니다.