2017-01-23 4 views
1

Я хочу отправить форму, используя ajax с Laravel. Но метод Ajax post дает 405 метод, который теперь разрешен. Я использую спокойный маршрут. Мой код ниже:
Мой файл маршрут приводится ниже:Laravel restful route ajax method post 405 метод не допускается

Route::resource("a","AController"); 

Мой файл JS приводится ниже:

var host = "http://example.com/"; 
var url = host + "a/store"; 
$('#form_id').on('submit',function(e){ 
    e.preventDefault(); 
    var data = $(this).serialize(); 
    $.ajax({ 
    url:url, 
    data: data, 
    type: 'post', 
    dataType: 'json', 
    timeout: 1000, 
    error:function() { alert("Error Submitting Information") } 
    }).done(function(resp){ 

    }); 
}); 

Мой файл контроллера:

public function store(Request $request){ 
    $input = $request->all(); 
} 

Но это дает 405 метод не допускается ошибка

+0

Поделитесь 'Интернет. php' код пожалуйста. Вы зарегистрировали Маршрут как «пост»? – manniL

+0

Вы уверены, что конечная точка поддерживает запрос POST, а не GET/PUT/DELETE? –

+0

Я обновил свой вопрос с помощью маршрутов/web.php file @manniL – Vam

ответ

1

Удалите /store часть:

var host = "http://example.com/"; 
var url = host + "a/"; //<---- 
$('#form_id').on('submit',function(e){ 
    e.preventDefault(); 
    var data = $(this).serialize(); 
    $.ajax({ 
    url:url, 
    data: data, 
    type: 'post', 
    dataType: 'json', 
    timeout: 1000, 
    error:function() { alert("Error Submitting Information") } 
    }).done(function(resp){ 

    }); 
}); 

По умолчанию Laravel направит любой запрос POST к store функции в AController

Посмотрите на таблицу маршрутов в Laravel документы: https://laravel.com/docs/5.3/controllers#resource-controllers