php 7.4.2 版本的 laravel 6.2 不支持 ajax 调用 post 方法中的错误

Posted

技术标签:

【中文标题】php 7.4.2 版本的 laravel 6.2 不支持 ajax 调用 post 方法中的错误【英文标题】:Error in ajax call post method is not supported in laravel 6.2 with php version 7.4.2 【发布时间】:2020-10-11 04:34:16 【问题描述】:

通过此链接,我使用提供的密钥打开更新男性巴士时刻表视图。

<a href=" route('update male bus schedule',$key) " class="btn btn-primary" style="padding: 
6px;margin-top: 7px">Update</a>

这是路线。

Route::get('update male bus schedule/key', [
    'uses' => 'busScheduleController@returnMaleBusScheduleUpdateView',
    'as'   => 'update male bus schedule'
]);

它是打开更新男性公交时刻表视图的控制器

public function returnMaleBusScheduleUpdateView($key)

    $route = new Route();
    $nameData = $route->getAllRouteNames();
    $schedule = new BusSchedule();
    $getData = $schedule->getMaleBusScheduledetailByKey($key);
    return view('update male bus schedule', ['id' => $getData, 'key' => $key,'items'=>$nameData]);

现在在更新男性巴士时刻表视图中,我在按钮单击时调用 ajax。

<button type="submit" class="btn btn-primary" id="$id['id']" onclick="updateSchedule(this.id)">Update
</button>

这里是javascript函数。

function updateSchedule(id) 
    var time = $('#time').val();
    var name = $('#name').val();
    var busNo = $('#busNo').val();
    var timeCheck="false";
    busNo = busNo.trim();
    if (busNo != "") 
        $.ajax(
            type: "POST",
            url: "update male bus schedule value from controller",
            data: 
                "_token": " csrf_token() ",
                "name": name,
                "busNo": busNo,
                "time": time,
                "id" : id,
            ,
            success: function (data) 
                alert(data);
            ,
            error:function (data) 
                alert(data);
                console.log(data);
            

        );
     else 
        alert("enter bus number.");
    


这里是这个 ajax 调用的路由。

Route::post('/update male bus schedule value from controller','busScheduleController@updateMaleBusScheduleById');

这里是控制器。

  public function updateMaleBusScheduleById(Request $request)
    
        return "true";
    

但我得到错误

此路由不支持 POST 方法。支持的方法:GET、HEAD。

当我更改视图时出现此错误

 <a href=" route('update male bus schedule',$key) " class="btn btn-primary" style="padding: 6px;margin-top: 7px">Update</a>.

【问题讨论】:

你的路由是 GET Route::get('update male bus schedule/key',...,你的 ajax 调用是 POST $.ajax( type: "POST", 如错误所示,方法应该是一样的。 @user3532758 路由是 post 并且在 ajax 调用方法中也是 post。 Route::post('/从控制器更新男性公交时刻表值','busScheduleController@updateMaleBusScheduleById'); 【参考方案1】:

重命名您的路线,切勿在路线中使用空格并使它们合乎逻辑。 /malebusschedule/update 例如,甚至更好地将其设为 PUT 甚至/male-bus-schedule/update

【讨论】:

删除空格并将路由更改为 PUT 也不起作用。当我使用带有键(提供的数据)的 html 标记更改视图时,会出现问题。我也提到了这个问题。

以上是关于php 7.4.2 版本的 laravel 6.2 不支持 ajax 调用 post 方法中的错误的主要内容,如果未能解决你的问题,请参考以下文章

从 Laravel 5.8 升级到 6.2 后 ConfirmPasswordController 不存在

Laravel Passport 无效范围提供了异常

Laravel系列6.2Laravel中的服务容器

如何在 LUMEN 中使用 GATE 立面(Laravel 6.2)

PHP笔记-laravel环境搭建(Laravel5.8.35版本)

如何在 Laravel 6.2 中安装 Vue.js