MethodNotAllowedHttpException错误Laravel

时间:2018-02-27 18:45:20

标签: javascript php ajax laravel routes

使用MethodNotAllowedHttpException提交表单数据时出现错误ajax

HTML

<form class="form-signin" id="loginForm" role="form" method="POST">
    // Form
</form>
<script>
        $('#loginForm').submit(function () {
            initLogin($('#email').val(),$('#password').val());
        });
</script>

的JavaScript

function initLogin(email, password) {

    $.ajax( {
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        },  
        url:'loginModal',
        method:'POST',
        data: {
            strEmail: email,
            strPassword: password
        },  
        success: function( bolUpdated ) { 
            alert('yes');
        },  
        fail: function() {
             alert('no');
        }   
    }); 

}

路线

Route::post( 'loginModal', 'Auth\LoginController@loginModal' );

控制器

public function loginModal( Request $request ) { 
    Log::info('test');
}   

我尝试更改表单的类型,但没有运气。知道可能是什么问题吗?

2 个答案:

答案 0 :(得分:1)

如果您要使用ajax

,则必须停止提交表单
    $('#loginForm').submit(function (e) {
        e.preventDefault(); //<-- here 
        initLogin($('#email').val(),$('#password').val());
        return false; //<---- or here
    });

否则表格会向当前页面发送一个发布请求(因为没有行动),该请求没有发布请求的路由。

答案 1 :(得分:1)

阻止表单的默认事件,因为您尚未为表单定义任何操作,并且其请求正在发送到当前页面

 $('#loginForm').submit(function (event) {
        event.preventDefault();
        initLogin($('#email').val(),$('#password').val());
    });