0
votes

Laravel 5: Lorsque vous stockez des données sur la base de données, le serveur a répondu avec un statut de 405 (méthode non autorisée)

Je suis nouveau dans Laravel et essayez d'ajouter des données à la base de données via Ajax, mais cela jette ce message: "Le serveur a répondu avec un statut de 405 (méthode non autorisée)" Je définis deux itinéraires pour celui-ci est pour la forme Page xxx

et autre voie pour enregistrer ces données comme ceci: xxx

et le code AJAX que j'utilise est ceci: xxx

code du contrôleur xxx

modèle xxx

c'est ma création .blade.php xxx xxx

erreur xxx


9 commentaires

Est-ce que votre itinéraire itinéraire :: get ('/ store-projet-définition-data / {id}' ..... est post? S'il est essayé de mettre à jour à Itinéraire :: Post (....


@VIPERTECPRO Oui J'ai essayé sur le message, mais il affiche un message d'erreur "La méthode d'obtention n'est pas prise en charge pour cet itinéraire. Méthodes prises en charge: POST"


Essayez-vous d'accéder à une méthode?


oui je l'ai fait mais ne travaille pas


Je ne comprends pas cela pourquoi voulez-vous appeler une méthode d'obtention via Ajax? AJAX Supposons appeler Post, Met, Patch, Supprimer des méthodes uniquement. Qu'essayez-vous de faire votre vie en appelant obtenir une méthode via Ajax?


Essayez de transmettre ce var addurl = "{{itinéraire (" participant.project-definition.store ')}} ";


Sur Ajax I Utilisez la méthode Post que vous pouvez voir sur le code JS, et je mette à jour l'erreur addurl et une nouvelle erreur "Paramètres manquants" pour [route: participant.project-definition.store] [URI: participant / Définition du projet / de la définition de projet -Data / {id}]. (Vue: / Var / www / html / Acumenfuel / Ressources / Vues / Participants / Projec T_Définition / Créer. Blade.php) "


C'est parce que vous avez {id} dans votre méthode postale supprimez-le et essayez


J'ai utilisé ce BCOZ, je souhaite insérer une clé étrangère en même temps, donc avec l'aide de l'ID, j'agirais que la clé étrangère @vipertecpro


3 Réponses :


0
votes
Route::match(['GET','POST'],'/store-project-definition-data/{id}', 'Participant\ParticipantProjectDefinitionController@store')->name('participant.project-definition.store');
You can try this Route it will resolve 405

3 commentaires

`` `Demande URL: 127.0.0.1:8000/participant/project-definition/ Créer / ... Méthode de demande: Publier l'adresse distante: 127.0.0.1: 8000 Code Statut: 405 Version: http / 1.0


Non résolu, je suis nouveau sur Laravel et je suis coincé sur cette erreur les deux derniers jours


Utilisez uniquement la méthode postale



0
votes

Ajoutez l'attribut méthode sous la forme xxx

modifier votre itinéraire de xxx

à xxx


4 commentaires

J'ai essayé puis j'ai trouvé une erreur "La méthode d'obtention n'est pas prise en charge pour cet itinéraire. Méthodes prises en charge: POST." et 405 erreur est toujours des spectacles


donner méthody = 'post' attribut sous forme


J'ai déjà essayé de mettre et de poster comme de cette façon {{méthod_field ("mettre")}}


essayez une fois la suppression {{méthody_field ('mettre')}} et la méthode de paramétrage "post" sous la forme



0
votes

Premièrement, vous devriez publier ici quel est votre problème et où est votre problème, nous n'avons pas besoin de voir tous votre code pour résoudre un problème de base. Votre formulaire devrait être ceci:

function storeDefinitionFormData(addUrl, token, baseUrl){
    $('#create_project_definition_data').click(function(e){

    $.ajaxSetup({
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        }
    });
        e.preventDefault();

        var form_fields = [];

        var counter = 0;

        $('.form-group').each(function(){

            var values = {
                'field_name' : $('#field_name_' + counter).val(),
                'field_data' : $('#field_data_' + counter).val(),
            };

            form_fields.push(values);

            counter++;
        });
        $.ajax({
            type: 'POST',
            dataType: 'JSON',
            url: addUrl,
            data: { // $id,  User $user, ProjectDefinitionFields $ProjectDefinitionFields
                '_token' : token,
                'id' : 'your_id_field',
                'user' : '{{ Auth::user() }}', 
                'ProjectDefinitionFields' : 'your_definition_fields' // you need to pass type of 'ProjectDefinitionFields'
            },
            success: function(data){
                alert('done');
                window.location = baseUrl;
            },
            error: function(data){
                alert('fail');
                if(data.status == 422){
                    errors = data.responseJSON.errors; // => colllect all errors from the error bag

                    var fieldCounter = 0;

                    $('.help-block').show();

                    $('.validation').empty(); // => clear all validation

                    // display the validations
                    $('.validation').css({
                        'display' : 'block'
                    });

                    // iterate through each errors
                    $.each(errors, function(key, value){

                        if(key.includes('form_fields.')){
                            var field_errors = key.split('.');

                            var field_error = field_errors[2] + "_" + field_errors[1];

                            $('#' + field_error + '_error').append("<i class='zmdi zmdi-alert-circle' style='font-size: 15px;'></i> " + value); // => append the error value in the error message
                        }

                        $('#' + key + '_help').hide();
                        $('#' + key + '_error').append("<i class='zmdi zmdi-alert-circle' style='font-size: 15px;'></i> " + value); // => append the error value in the error message
                    });
                }
            }
        });
    });
}


1 commentaires

La raison pour laquelle j'ai utilisé $ ID sous forme de paramètre et d'URL est le champ de formulaire que j'ai affiché est dynamique afin d'extraire le formulaire que j'ai utilisé le paramètre utilisé après cela tout en stockant les données que j'ai utilisées $ ID Parce que j'ai besoin d'insérer la clé étrangère avec des intrants respectifs.