簡體   English   中英

獲取404找不到POST ajax請求錯誤Laravel 5.2

[英]Getting 404 not found error for POST ajax request Laravel 5.2

我正在將我的laravel 4應用程序升級到laravel 5.2並且有很多東西我必須在我的代碼中重新考慮。 其中一個是針對AJAX請求的CSRF 我無法弄清楚如何在我的路線文件中正確處理它。 當然,我在我的視圖中包含了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)

可能是你的解決方案就像

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

代替

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

根據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);
        }
    });

或者,您也可以將令牌作為數據發送

只是為了測試並告訴我答案。 在你的控制器中改變

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;
        }
    }

並添加

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM