首页 > 解决方案 > 此路由不支持 GET 方法。支持的方法:POST。Laravel 和 Ajax

问题描述

我试图了解如何将数据从 ajax 保存到 laravel 数据库。但我收到了这个错误:这条路线不支持 GET 方法。支持的方法:POST。

我希望你能帮助我一点。

网页.php

Route::post('postdataCord', 'HomeController@postdataCord')->middleware('auth');

控制器

    public function postdataCord(Request $request)
    {
        $myId = auth()->id();
        $long = $request->long;
        $lat = $request->lat;

        $data = User::find($request->get($myId));
        $data->long = $long;
        $data->lat = $lat;
        $data->save();   
    } 

脚本刀片

$(document).ready(function() {

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

            const successCallback = (position) => {
                var long = position.coords.longitude;
                var lat = position.coords.latitude;
                console.log(long, lat);

                var datastr = "long=" + long + "&lat=" + lat;
                $.ajax({
                            type: "post",
                            url: "postdataCord",
                            data: datastr,
                            cache: false,
                            success: function(data){


                            },
                            error: function(jqXHR, status, err){

                            }

                        });

            };
            const errorCallback = (error) => {
                console.log(error);
            };

            const watchId = navigator.geolocation.watchPosition(successCallback, errorCallback, {
            enableHighAccuracy: true,
            timeout: 60000,
            maximumAge: 0
            });
            
        });

标签: phpjqueryajaxlaravel

解决方案


更改您的路线类型以发布您需要这样的表格

<form id="id_of_form" onsubmit="ajaxUpdate()" class="form-horizontal col-lg- offset-2" role="form" enctype="multipart/form-data">

试试这个 ajax 请求

function ajaxUpdate() {
var inputs = $('#id_of_form').serializeArray();

                $.ajax({
                    type:'POST',
                    url:'your/route/url',
                    data:inputs,
                    success:function(data){
                        if(data.status == 200) {
                            // code what happen if success

                        }
                    }
                });
}

推荐阅读