使用ajax提交表单时,RouteCollection.php第251行中的MethodNotAllowedHttpException

时间:2019-05-17 11:46:52

标签: php ajax laravel

我正在使用ajax将html表单发送到laravel控制器,但它显示了RouteCollection.php第251行中的MethodNotAllowedHttpException错误。

这是我的ajax代码。

<script type="text/javascript">
    function Login(){

        var data = $("#login-form").serialize();
        $.ajaxSetup({
            headers: {
                'X-XSRF-Token': $('meta[name="_token"]').attr('content')
            }
        });

        $.ajax({
            type:"POST",
            url:"userAuth",
            data:data,
            success: function(response)
            {
                console.log(response);
            },
            error:function(response)
            {
                console.log(response);
            }
        });
    }
</script>

控制器代码

<?php
namespace App\Http\Controllers;

use Illuminate\Http\Request;

class LoginController extends Controller
{

    public function userAuth(Request $request)
    {
        $name = $request->username;
        die($name);
    }
}
?>

web.php代码

Route::post('/userAuth', 'LoginController@userAuth');

请让我知道我在做错什么,谢谢。

2 个答案:

答案 0 :(得分:0)

带有基本URL和csrf令牌的请求URL

<script type="text/javascript">
    function Login(){

        var data = $("#login-form").serialize();

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

         var getUrl = window.location;
         var baseUrl = getUrl .protocol + "//" + getUrl.host + "/" + getUrl.pathname.split('/')[1];


        $.ajax({
            type:"POST",
            url: baseUrl+"/userAuth",
            data:data,
            success: function(response)
            {
                console.log(response);
            },
            error:function(response)
            {
                console.log(response);
            }
        });
    }
</script>

答案 1 :(得分:-1)

在您的api.php文件中放置您的路线

Route::post('/userAuth', 'LoginController@userAuth');

您的web.php文件具有CSRF保护的中间件。您可以禁用它,但不推荐使用