yii2 Ошибка запроса Ajax 404

Я хочу использовать ajax в yii2 (инфраструктура PHP). Я использую следующий код, но он не работает.

Мой файл просмотра (PHP):

<script>
var url1='<?php echo  Url::toRoute('Agehi/Ajaxshahr'); ?>';
</script>
<?php
$script= <<<JS
    function selectshahr()
    {
        var ost = $("#ostan").val();
        $.ajax(
        {
            type: "post",
            url: url1,
            data: ost,
            cache: false,
            success: function(data)
            {
                alert(data);
            }
        });

    }
JS;
$this->registerJs($script,View::POS_BEGIN);

$form = ActiveForm::begin([
    'id' => 'login-form',
    'options' => ['class' => 'form-horizontal','enctype'=>'multipart/form-data'],
]);
echo $form->errorSummary($model,['header'=>'لطفا خطاهای زیر را برطرف نمایید','class'=>'']);
echo \vova07\imperavi\Widget::widget([
    'selector' => '#content','name'=>'content',
    'settings' => [
        'lang' => 'fa',
        'minHeight' => 200,
        'plugins' => [
            'clips',
            'fullscreen'
        ]
    ]
]);
?>
<?= Html::label('استان','ostan',array()) ?>
<?= Html::dropDownList('ostan', null,
    ArrayHelper::map($ostan, 'id', 'name'),array('class'=>'form-control','onchange'=>'selectshahr()','id'=>'ostan')) ?>
<?= Html::label('شهرستان/شهر','shahr',array()) ?>
<?= Html::dropDownList('shahr', null,
    array(),array('class'=>'form-control')) ?>

и в моем контроллере:

class AgehiController extends \yii\web\Controller
{
    public function  actionAjaxshahr($ostan)
    {
        $data = Shahr::findAll('condition', 'osid=' . $_POST['data']);
        if(yii::$app->request->isAjax())
        {
            return $this->renderPartial('_Ajax_shahr', array('data' => $model));
        }
        return $this->renderPartial('_Ajax_shahr', array('data' => $model));

    }

}

Кажется, все в порядке, но он не отвечает ни на один запрос, который я проверил с помощью инструментов разработчика браузера, и он увидел AJAX как ошибку 404


person javad naroogheh    schedule 19.05.2015    source источник
comment
Я копирую URL-адрес Ajax и вставляю его в панель навигации URL-адреса, он возвращает ошибку 404 и эхо: страница не найдена. Вышеупомянутая ошибка произошла во время обработки вашего запроса веб-сервером. Свяжитесь с нами, если вы считаете, что это ошибка сервера. Спасибо   -  person javad naroogheh    schedule 19.05.2015
comment
Попробуйте ‹code› var url1 = '‹? Php echo Url :: toRoute (' agehi / ajaxshahr '); ?>';   -  person Xiaosong Guo    schedule 19.04.2016


Ответы (1)


Имена контроллеров и действий в маршруте должны быть в нижнем регистре.

person Jan Waś    schedule 20.05.2015