#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….