2016-08-08 9 views
1

Я пытаюсь получить данные от ajax до контроллера, но кажется, что ajax не передает никаких данных.Laravel - не удается получить данные от ajax до контроллера

Meta лексем:

<meta name="_token" content="{!! csrf_token() !!}" /> 

Javascript:

$.ajaxSetup({ 
    headers: { 'X-CSRF-Token' : $('meta[name=_token]').attr('content') } 
});  

// AJAX Call 

$.ajax({ 
    method: "POST", 
    url: "someurl", 
    data: JSON.stringify({'sample': 'test'}), 
    dataType: "json", 
    contentType: "application/json", 
    success: function(data) { 
     console.log(data); 
    }, 
    error: function(err) { 
     console.log(err); 
    } 
}); 

Маршруты:

Route::post('/someurl', '[email protected]'); 

Контроллер:

public function updateUser() { 

    $myTest = Input::all(); 

    return response()->json(json_encode($myTest)); 
} 

Я могу назвать контроллер без проблем, но когда я добавить Input:all(), я получаю 500 server error. Пожалуйста, помогите мне, спасибо!

+0

Проверьте журнал сервера для получения более подробной информации, как правило, когда вы видите 500 ошибок, которые вы хотели бы сделать. – SteD

+0

проверить по echo $ myTest или print_r $ myTest, если они имеют какое-либо значение или нет? –

ответ

0

Исправьте меня, если я ошибаюсь, но насколько мне известно, Input :: all() работает по запросу Laravel. Вы не обрабатываете запрос, но чистые исходные данные POST, поэтому Input :: all() не работает. Попробуйте обратиться к нему с помощью $myTest = $_POST['sample'] и посмотреть, выполняет ли это задание. Да, и для вашего удобства, я бы пойти на следующее, если вы используете Клинок двигатель шаблона:

$.ajax({ 
    method: "POST", 
    url: "someurl", 

    data: { 
     'sample': 'test', 
     '_token' : '{{csrf_token()}}' 
    }, 

    dataType: "json", 
    contentType: "application/json", 
    success: function(data) { 
    console.log(data); 
}, 
    error: function(err) { 
    console.log(err); 
} 
}); 

и оставить прочь ajaxsetup и CSRF поле