Laravel 5 Ajax Post 路线
Laravel 5 Ajax Post route
这是我第一次尝试使用ajax来Post而不是Get。我收到 200 响应,就好像它在工作一样,但控制器中的功能永远不会 运行。
我在我的 ajax Get 请求中使用了相同的概念并且它们工作正常但是 Post 没有按预期工作并且 sortable('serialize') 创建了一个 Post 变量,所以我需要使用 Post。
成功中的警报:功能总是 运行s 就好像它是成功的但控制器功能永远不会被命中(我让它做了一个简单的数据库更改只是为了验证它是否是 运行宁).
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' =>'ApiController@SortOrderItem']);
控制器:
public function SortOrderItem()
{
$this_item = \pmms\Checklist_template_line_item::findOrFail(20);
$this_item->list_position = 1;
$this_item->save();
}
我认为你的问题是 csrf_token,
将此行放在您的 blade 页面标题部分:
<meta name="csrf-token" content="{{ csrf_token() }}" />
然后,像这样更新您的 ajax 代码:
$.ajax({
type: 'post',
url: '/api/sort_order_item',
data: {
'items': items,
'_token': $('meta[name="csrf-token"]').attr('content'),
},
success: function()
{
alert('looks like it is working...');
},
});
如果对你有帮助请告诉我
这是我第一次尝试使用ajax来Post而不是Get。我收到 200 响应,就好像它在工作一样,但控制器中的功能永远不会 运行。
我在我的 ajax Get 请求中使用了相同的概念并且它们工作正常但是 Post 没有按预期工作并且 sortable('serialize') 创建了一个 Post 变量,所以我需要使用 Post。
成功中的警报:功能总是 运行s 就好像它是成功的但控制器功能永远不会被命中(我让它做了一个简单的数据库更改只是为了验证它是否是 运行宁).
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' =>'ApiController@SortOrderItem']);
控制器:
public function SortOrderItem()
{
$this_item = \pmms\Checklist_template_line_item::findOrFail(20);
$this_item->list_position = 1;
$this_item->save();
}
我认为你的问题是 csrf_token, 将此行放在您的 blade 页面标题部分:
<meta name="csrf-token" content="{{ csrf_token() }}" />
然后,像这样更新您的 ajax 代码:
$.ajax({
type: 'post',
url: '/api/sort_order_item',
data: {
'items': items,
'_token': $('meta[name="csrf-token"]').attr('content'),
},
success: function()
{
alert('looks like it is working...');
},
});
如果对你有帮助请告诉我