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>.
【问题讨论】:
你的路由是 GETRoute::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 不存在
如何在 LUMEN 中使用 GATE 立面(Laravel 6.2)