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
Du musst angemeldet sein, um einen Kommentar abzugeben.
In Ihrer Steuerung haben Sie einen Tippfehler.
Sollte es
statt
Nicht sicher, ob dies ist Ihre einzige problem, aber das ist einer von Ihnen.
EDIT : außerdem sollten Sie Ihre Anfrage geben.
Vergewissern Sie sich auch Ihre route setup zu akzeptieren post-Anfragen wie.
Beispiel AJAX.