POST ajax请求404 not found错误


Getting 404 not found error for POST ajax request Laravel 5.2

我正在将我的laravel 4应用程序升级到laravel 5.2,有很多事情我必须在我的代码中重新考虑。其中之一是CSRFAJAX请求。我不知道如何在我的路由文件中正确处理它。当然,我已经在我的视图中包含了csrf的元数据:

<meta name="csrf-token" content="{{ csrf_token() }}" />

我的路由文件:

Route::post('/edituser', 'UsersController@toEditUser');

我的脚本:

var _token = $('meta[name="csrf-token"]').attr('content');
function triggerEditUser(id){
    $.post(_token+'/edituser',{id:id},function(data){
        if(data){
            console.log(data);
        }
    });
}

我的控制器:

public function toEditUser(){
        if(Request::ajax()){
            $user = User::find(Input::get('id'));
            return Response::json($user);
        }
    }

我得到错误信息:

http://mysite.local/kg9VLUc0QWP59AqSP0OCPWjwsWPg33ypZ47FecRC/edituser 404 (Not Found)

作为给定的Laravel文档,您应该使用头来发送csrf令牌。

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

$.post('/edituser',{id:id,_token:_token},function(data){
        if(data){
            console.log(data);
        }
    });

或者,您也可以将令牌作为数据

发送

也许你的解决方案是这样的

$.post( '/edituser',{id:id, token:_token},function(data){

代替

$.post(_token+'/edituser',{id:id},function(data){

只是为了测试并告诉我答案。在控制器中更改

public function toEditUser(){
        if(Request::ajax()){
            $user = User::find(Input::get('id'));
            return Response::json($user);
        }
    }

public function toEditUser(){
        if(Request::ajax()){
            $user = User::find(Input::get('id'));
        foreach ($user as $u) {
            $users[]=$result->yourcolumn;
        }
           return $users;
        }
    }

和add

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