I'm having some issues with Laravel 5.2 when I do an ajax POST I get a 403 error
1) Ajax POST request
$.ajax({
headers: {
'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content')
},
data: {category_id:category_id, _token: $('meta[name="csrf-token"]').attr('content')},
url: '/admin/gallery/create/ajax',
method: 'POST',
success: function(data)
{
console.log(data);
$('#object').empty();
$('#object').append(data);
},
error: function(msg)
{
console.log(msg);
}
});
2) Route
Route::post('admin/gallery/create/ajax', ['as' => 'gallery.ajax', 'uses' => 'GalleryController@getObject']);
3) Controller
public function getObject(Request $request){
$data = array();
if($request->category_id == 'users'){
$allItems = User::all();
foreach ($allItems as $key => $item) {
$data += array($key=>'<option value="'.$item['name'].'">'.$item['name'].'</option>');
}
}
if($request->category_id == 'authors'){
$allItems = Author::all();
foreach ($allItems as $key => $item) {
$data += array($key=>'<option value="'.$item['name'].'">'.$item['name'].'</option>');
}
}
if($request->category_id == 'galleries'){
$allItems = Gallery::all();
foreach ($allItems as $key => $item) {
$data += array($key=>'<option value="'.$item['name'].'">'.$item['name'].'</option>');
}
}
return $data;
}
4) result
POST 403 (Forbidden)
5) but with route:
Route::post ('admin/gallery/create/ajax', function(\Symfony\Component\HttpFoundation\Request $request){
if (Session::token() == Request::header('x-csrf-token'))
{
echo $request->category_id;
} else {
return 'ERROR';
}
});
6) result
7) with GET all work fine
$.ajax({
headers: {
'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content')
},
data: {category_id:category_id},
url: '/admin/gallery/create/ajax/',
method: 'get',
success: function(data)
{
$('#object').empty();
$('#object').append(data);
},
error: function(msg)
{
console.log(msg);// если ошибка, то можно посмотреть в консоле
}
});
ROUTE GET
Route::get ('/admin/gallery/create/ajax/', ['as' => 'gallery.ajax', 'uses' => 'GalleryController@getObject']);
9. Need help with AJAX POST