Laravel: загрузка представления в представление через ajax

#jquery #ajax #laravel-4

#jquery #ajax #laravel-4

Вопрос:

Я захожу в Laravel 4.x из Codeigniter и не понимаю сообщения об ошибках Laravel. Я пытаюсь загрузить представление в представление, это мой код

Маршрут

 Route::get('widget/addcustomer', 'WidgetController@addcustomer');
  

Контроллер

 public function addcustomer()
{
    return View::make('widget.addcustomer')->render();
}
  

Главная view.blade.php

 <script>
function loadwidget(1, 'formname', 1)
{   
    var widget_url = '<?php echo URL::to('widget'); ?>';

    $.ajax({
        type:'POST',
        url: widget_url '/' formname,
        dataType: "html",
        async: false,
        cache: false,
        success: function(response)
        {
            $('#' divid).html(response);

            if(active==0)
            {               
                $('#' divid ' :input').attr('disabled', true);              
            }       
        }
    });
    return true;
}
</script>
  

Внешний view.php

 <form id="customer_form">
    <table><tr><td>....</td></tr></table>
</form>
  

но в результате ошибки я получаю

 {"error":{"type":"Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException","message":"","file":"E:\xampp\htdocs\tt_kickoff\vendor\laravel\framework\src\Illuminate\Routing\RouteCollection.php","line":210}}
  

и если я нажму http://localhost/tt_kickoff/widget/addcustomer
, он загрузит правильный html

Комментарии:

1. опубликуйте файл маршрутов

2. Маршрут: Маршрут::get(‘widget / addcustomer’, ‘WidgetController@addcustomer’);

Ответ №1:

В вашем файле маршрутов будет GET метод для addcustomer() — но вы «ОТПРАВЛЯЕТЕ» на маршрут, поэтому вам также нужен POST метод.

Редактировать:

Таким образом, вы меняете

 Route::get('widget/addcustomer', 'WidgetController@addcustomer');
  

Для

 Route::post('widget/addcustomer', 'WidgetController@addcustomer');
  

ИЛИ измените свой ajax

 type:'POST',
  

Для

 type:'GET',
  

Комментарии:

1. Что такое «divid» — я нигде не вижу, чтобы это было определено? В любом случае — это исправило вашу проблему с маршрутом — теперь у вас проблема с ajax….