#javascript #laravel
#javascript #laravel
Вопрос:
Я пытаюсь создать ajax в laravel и получаю следующее: «Метод POST не поддерживается для этого маршрута. Поддерживаемые методы: GET, HEAD». Проблема в том, что я уже делал ajax в своем проекте раньше, только с этим у меня проблема. Кто-нибудь может помочь?
Мой маршрут:
Route::get('/admin/clients-data','AppHttpControllersClientsController@gravy');
Route::get('/admin/client-details/{slug}','AppHttpControllersClientsController@clientdetails');
Route::post('/admin/client-details/adddocumentstoclient','AppHttpControllersClientsController@adddocumentstoclient');
Мой контроллер:
public function adddocumentstoclient(Request $request){
echo '<pre>';
var_dump('bump');
echo '</pre>';
die();
}
И мой js:
$('.tasks input').on('click', function() {
var emptyValue = 0;
$('input:checked').each(function() {
emptyValue = parseInt($(this).val());
});
var documents_brought = [];
var documents = $('.documents_brought input:checked').each(function(){
documents_brought.push($(this).data('documentid'));
});
var client_id = $('.documents_brought').data('clientid');
$.ajax({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
type: "POST",
url: "adddocumentstoclient",
data: {'documents_brought':documents_brought,'client_id': client_id},
success: function (html) {
// returndata = JSON.parse(html);;
// toastr.success(returndata.message, returndata.title);
}
});
$('.progress-bar').css('width', emptyValue '%').attr('aria-valuenow', emptyValue);
});
Заранее спасибо
Комментарии:
1. Ваш путь не соответствует, попробуйте этот
url: "/admin/client-details/adddocumentstoclient",
2. не работает, я пробовал
3. Введите name route, и он будет работать
Route::post('/admin/client-details/adddocumentstoclient','AppHttpControllersClientsController@adddocumentstoclient')->name('adddocumentstoclient');
, и на вашем блейд-адресе ajax будетurl: "{{ route('adddocumentstoclient') }}",
4. Route::post(‘/admin/client-details/adddocumentstoclient’,’AppHttpControllersClientsController@adddocumentstoclient’)->name(‘adddocumentstoclient’) ; Маршрут [adddocumentstoclient] не определен
5. Да, чувак, это было так, добавлено -> name(‘adddocumentstoclient’), очистить маршруты и ‘bum’. Спасибо
Ответ №1:
Хорошо, проблема здесь
Route::get('/admin/client-details/{slug}','AppHttpControllersClientsController@clientdetails');
Route::post('/admin/client-details/adddocumentstoclient','AppHttpControllersClientsController@adddocumentstoclient');
Первый маршрут get
, и вы принимаете slug
параметр, поэтому всякий раз, когда вы нажимаете /admin/client-details/adddocumentstoclient
, он будет сопоставляться с первым маршрутом, который есть get
, и вы никогда не достигнете своего второго маршрута.
Решение здесь, чтобы добавить префикс перед slug
in /admin/client-details/{slug}
или изменить второй префикс маршрута /admin/client-details/
, чтобы различать оба маршрута.