Это моя первая попытка использовать ajax для Post вместо Get. Я получаю ответ 200, как если бы он работал, но функция в контроллере никогда не запускается.Laravel 5 Ajax Почтовый маршрут
Я использовал эту ту же концепцию в своих приложениях ajax Get, и они работают нормально, но Post работает не так, как ожидалось, и сортировка («serialize») создает переменную Post, поэтому мне нужно использовать Post.
Предупреждение об успешности: функция всегда работает так, как если бы она была успешной, но функция контроллера никогда не ударялась (у меня есть простая замена базы данных, чтобы проверить, работает ли она).
Ajax:
$(function() {
$('[id^="sortable_"]').sortable(
{
connectWith: '.sortable-line-item-list-5',
update : function (event, ui)
{
var items = $(this).sortable('serialize');
$.ajax({
type: 'post',
url: '/api/sort_order_item',
data: {
'items': items,
},
success: function()
{
alert('looks like it is working...');
},
});
}
});
$('[id^="sortable_"]').disableSelection();
});
Маршрут:
Route::post('api/sort_order_item', ['as' => 'api/sort_order_item', 'uses' =>'[email protected]']);
Контроллер:
public function SortOrderItem()
{
$this_item = \pmms\Checklist_template_line_item::findOrFail(20);
$this_item->list_position = 1;
$this_item->save();
}
Если запрос не ударяя метод, то вы не должны получить '200' код статуса. Это ударит по методу, убедитесь, что 'dd (app ('request') -> all())' в методе и проверьте вкладку сети в вашем браузере. Также вы не использовали ключевое слово 'return' и не отправляли ответ. –
Я устал от этих вещей - dd() никогда не попадает в метод. Ключевое слово return тоже ничего не возвращает. Я посмотрел на вкладку сети в Chrome, она показывает ответ 200, но из localhost/home, а не api/sort_order_item, который возвращает 302 непосредственно перед ним. – circle1
Тогда есть перенаправление для 'auth' подобных вещей. –