Laravel 5 路由未找到404。

3

我试图发布用户电子邮件以订阅我的网站,但我的控制台一直给我一个404异常的路线。我有一个名为betas的表格,和一个在App\Beta.php中称为Beta的模型。这是我的路线:

use App\Beta;
use Illuminate\Http\Request;
Route::post('/email',['middleware'=>'csrf',function (Request $request){


    $validator=Validator::make($request->all(),[
        'email' => 'required|max:64|email|unique:betas,email'
    ]);

    //if validator passes save the email in the database
    if($validator->passes()){
        $beta = new App\Beta;
        $beta->email=$request->email;
        $beta->save();

        $response=array(
            'status' => 'Email posted successfully'
        );
    }
    else{
        $messages = $validator->messages();
        $response=array(
            'messages' => $messages->first('email'),
            'status'   => 'Email post failed',
        );  
    }
    return response()->json($response);
}]);

以下是我的js文件:
$("#betaForm").submit(function(){
        $(".loadingPic").show();
        var email=$("#emailInput").val();
        console.log("email:"+email);
        //pause for a bit to see pretty loading icon
        console.log("before setTimeout");
        var load=setTimeout(function(){return undefined;}, 1000);
        console.log("after setTimeout");

        if(email==""){
            $("#warningMessage").html("please input your email");
            $("#warningMessage").show();
        }
        else{
            $.post({
                url: $(this).prop('action'),
                data: {
                    "_token": $( this ).find( 'input[name=_token]' ).val(),
                    "email": email
                    },
                success: function(result){

                        if (result.status!='Email posted successfully'){
                            $("#warningMessage").html(result.messages);
                            $("#warningMessage").removeClass( "alert-success");
                            $("#warningMessage").addClass("alert-danger");
                            $("#warningMessage").show();
                        }
                        else{

                            $("#betaForm button").prop("disabled",true);
                            $("#betaForm button").html("Awesome! Well Be In Touch.");


                        }   
                    },
                dataType: 'json'
            });
        }
        $(".loadingPic").hide();
        return false;
    });

当提交按钮被按下时,我在浏览器控制台中收到错误信息。

如果有人需要更多信息,请告诉我们。 - alaboudi
另外,我正在使用Apache2。 - alaboudi
实际上发布到哪个URL? - James
所以我的HTML页面有以下的Blade代码:<form id="betaForm" action="{{ url('email')}}" method="POST"> 这里的action是缩写,代表"https://localhost/myappname/email"。 - alaboudi
我有一个更新:这似乎更像是Apache错误,但仍然存在的问题是如何修复它?我在内置的PHP服务器中有一些路由,并且它可以正常工作。那么你们认为问题出在哪里呢? - alaboudi
您是否已启用 mod_rewrite - Pitchinnate
1个回答

3
我认为问题在于“中间件”=>“csrf”。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接