此路由不支持 POST 方法.支持的方法:GET,HEAD.for /register



我正在尝试使用ajax发布表单数据:

var data = $('#form1').serialize();
$.ajax({
type: "post",
url: '/register',
data: data,
dataType: "json",
success: function (data) {
console.log(typeof(data));
}});

但我得到:

此路由不支持 POST 方法。支持的方法:获取、头部

但是,网络.php有:

Auth::routes(['verify' => true]);

我尝试在身份验证之前添加以下路由::routes(['验证' => true]( :

Route::post('/register', 'RegisterController@register');

还尝试清除路由缓存,但没有一个有效。

注意:我使用类似的ajax发布登录数据没有问题,它只与/register有关

问题出在哪里?如何解决?请帮忙

更新

我已经尝试了默认的寄存器刀片并且可以工作,所以我认为这个问题与 Ajax 特别有关,但是,我还不知道为什么

我在你的代码上找不到任何奇怪的东西。

我认为路由缓存可能会发生错误。

输入这个命令怎么样?

$ php artisan route:cache

添加

我测试了这段代码,它可以工作。

删除路由缓存文件

$ php artisan route:clear

在视图中

<form id="form1">
@csrf
<input type="text" name="test" value="">
<button type="submit" id="btnSubmit">Submit</button>
</form>

在 JS 中

$('#btnSubmit').on('click', function (e) {
e.preventDefault();
var data = $('#form1').serialize();
$.ajax({
type: "post",
url: '/register',
data: data,
dataType: "json",
success: function (data) {
console.log(data);
},
error: function (err) {
console.log(err);
}
})
});

在网络中.php

<?php
Route::post('/register', 'RegisterController@register');

在注册控制器中.php

<?php
class RegisterController extends Controller
{
public function register()
{
return request();
}
}

最新更新