ошибка 405 POST ajax laravel MethodNotAllowedHttpException

У меня есть формуляр, в котором я пробую добавлять категорию посредством ajax и каждый раз, когда я пробую создавать категорию меня отпускает ошибка POST 405, и никогда не прибывает в Категорию controller и очевидно он ничего не вводит в базу данных

Я использую windows 7 и Xampp и все это в localhost

Мои данные

Route::resource('categorias','categoriaController');

CREACATEGORIAS

{!! Form::open(['route' => 'admin.categorias.store','method' =>'POST','class'=>'form-horizontal']) !!}

                                    {{ csrf_field() }}

                                   <div  class="form-group">
                                          {!! Form::label('categoria', 'Categoria', ['class' => 'col-md-4 control-label']) !!}
                                        <div class="col-md-6">

                                         {!! Form::text('categoria', '', ['Crea una categoria','class'=>'form-control']) !!}


                                        </div>
                                    </div>

                                      <div class="form-group">
                                        <div class="col-md-6 col-md-offset-4">
                                            <button type="submit" class="btn btn-primary" id="bsubmit">
                                                <i class="fa fa-btn fa-user"></i> Crea tu categoria
                                            </button>
                                        </div>
                                    </div>
{!! Form::close() !!}

ФУНКЦИЯ АЯКС

$(document).ready(function() {


    $('#bsubmit').click(function(e){
        e.preventDefault();
        var valorCategoria = $('input[name="categoria"]').val();
        //var rutaCompleta = window.location.pathname+'/create';
    var rutaCompleta = window.location.pathname;

        $.ajax({
            url: rutaCompleta,
            method: 'POST',
            dataType: 'json',
            data: {'categoria': valorCategoria},
            headers: { 'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content') },
        })
        .done(function() {
            console.log("success");
                    var estilo = 'style="background : green; height : 30px; text-align:center; color:white; margin-top:20px "';
                    var msgnotificacion =   '<div class="alert alert-success">';
                        msgnotificacion+=   '<a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a>';
                        msgnotificacion+=   '<strong>REGISTRO '+valorCategoria+' CREADO CORRECTAMENTE</strong>';
                        msgnotificacion+=   '</div>';

                     $('#labelnombre').after(msgnotificacion);
                     $('#bsubmit').after('<p '+estilo+'>Categoria..:: '+valorCategoria+' ::.. </p>');

        })
        .fail(function(erroz) {
            console.log("error_"+erroz.status);
        })
        .always(function() {
            console.log("complete");
        });




    })
});

Помести их, что у меня есть в виде

<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="_token" content="{!!csrf_token()!!}">

CategoriaController (метод store)

  public function store(Request $request)
    {

        dd($request->all());
         if ($request->ajax()) :
            \App\modelos\categoria::create($request->all());

        endif;

    }
3
задан 01.05.2017, 21:51
1 ответ

Ошибка 405 - "Метод или не разрешенный глагол".

Если ты используешь Route:resource(algo) ты должен продолжать соглашения Laravel, (если только ты не создашь твое собственное поколение маршрутов):

Согласно документации Laravel по этому поводу, маршруту algo/create это та, которая была бы должна показывать формуляр создания, из-за чего это должен быть GET.

Маршрут, который использует глагол POST, чтобы сохранять информацию, algo/store.

Вкратце, ты должен приспосабливать лучше твой драйвер для того, чтобы он совпал с глаголами и маршрутами Route::resource или добавлять исключения в методе, или не использовать это и определять каждый ручной маршрут.

Здесь у тебя есть ссылка, где он показывает таблицу эквивалентности для Route::resource: https://laravel.com/docs/5.3/controllers#resource-controllers

3
ответ дан 24.11.2019, 12:29
  • 1
    Моменты, написав вопрос, я догадался, что я ошибся метода, я протестировал столько вещей, посмотрел до конфигурации индейца-апачиа и я забыл главной. Большое спасибо из-за твоего ответа. РЕШЕННЫЙ. Привет. – KurodoAkabane 21.11.2016, 19:45

Теги

Похожие вопросы