Laravel: Holen 405 Methode ist Nicht Zugelassen, während die Bereitstellung von Daten mithilfe von jquery-ajax-api, um Daten zu speichern

Ich versuche zum speichern von Daten in einer Datenbank mithilfe von jQuery-ajax-api in Laravel 4.* und Sie erhalten einen 405 Fehler.

Ansicht

{{Form::open(array("","id"=>"frmProcessLevel"))}}
   <input name="{{$result->id.'_'.str_replace(' ','-',$title)}}" id="processLevel">

   <h3>{{$title}} Impact rating</h3>
   <table class="table table-bordered" style="font-size: 12px">
       <thead>
           <tr>
               <th>Level</th>
               <th>Category</th>
               <th>Description</th>
           </tr>
       </thead>
       <tbody class="selectable selectable-rows">
           @foreach($impact_rating as $key => $value)
                <tr data-key="{{$key}}">
                    <td>{{$key}}</td>
                    <td>{{$impact_cat[$key]}}</td>
                    <td>{{$value}}</td>
                </tr>
           @endforeach
       </tbody>
   </table>
   {{Form::token()}}
   {{Form::submit('Save')}}
{{Form::close()}}

<script>
        //Submit the form functions
        $("#frmProcessLevel").submit(function (e) {
            e.preventDefault();
            var selectedLevel = $("#processLevel").val();
            var datastring = 'selectedLevel='+selectedLevel;
            //alert(selectedLevel);
            $.ajax({ 
            headers: {
                    'X-CSRF-Token': $('meta[name="_token"]').attr('content')
                },
                url: "/bia/create_critical_process/",
                type: "post",
                data: datastring,
                success: function (data) {
                    console.log(data);
                }
            }, "json");
        });
</script>

Routen

Route::post('/bia/create_critical_process',array('before' => 'csrf','uses'=>'BiaController@createBiaStepThree'));

Controller

 public function createBiaStepThree(){
        $data = Input::all();
        $last_insert_bia_id = Session::get('last_insert_bia_id');
        if (Request::ajex())
        {
            Log::info(Input::all());
            $bia = new CriticalProcessStepThree();
            $bia->impact_rating_clinical = $data['selectedLevel'];
            $bia->key_process_fk = 1;
            $bia->bia_entry_fk = $last_insert_bia_id;
            $bia->save();
        }
    }

Passing token: http://words.weareloring.com/development/laravel/laravel-4-csrf-tokens-when-using-jquerys-ajax/

  • Deine route sieht für mich falsch. Ihr fehlt der Schlüssel aus dem array für die Steuerung verwendet. Sollte 'uses'=>'BiaController@createBiaStepThree'
  • Ich schon Hinzugefügt, dass, immer noch nicht funktioniert
  • Dann aktualisieren Sie Ihre Frage entsprechend den neuen code. Durch die immer noch nicht funktioniert, ich nehme an, Ihr immer den gleichen 405 Fehler?
  • ja, immer die gleichen Fehler, ich aktualisierte code.
  • Ok, basierend auf dem, was ich verstanden habe, änderte ich die Strecke von /bia/create_critical_process? und hatte 404 statt 405
  • Könnte es ein server-problem? Ich nur schneiden Sie alle Ihre code und setzen es in eine saubere laravel installieren. Funktionierte ohne ein problem. Kannst du die form normal (ohne ajax)? Auch Sie Dinkel Ajax falsch in Ihrem controller-Methode Request::ajax().
  • Versuchen Route::post('bia/create_critical_process'... (entfernen der Beginn Schrägstrich).
  • Versuchen Sie, php composer.phar-dump-autoload
  • Überprüfen Sie die Ausgabe von artisan routes

InformationsquelleAutor star18bit | 2014-07-04
Schreibe einen Kommentar