2017-02-23 173 views
0

我試圖通過Laravel中的ajax推送一些數據。不幸的是它不起作用。當我在網絡流量觀看時,我發現這:Laravel Ajax POST請求不起作用:302找到

Request Method:POST 
Status Code:302 Found 

我試圖從一個JSGrid,它工作正常的數據。數據對象被填充。我檢查了它。爲了測試,我剛剛在控制器中回覆了一條短消息。但是,當我發送POST請求,它甚至沒有叫......

這裏是我的代碼

的Javascript:

$.ajaxSetup({ 
    headers: {'X-CSRF-Token': $('meta[name=token]').attr('content')} 
}); 
$('#save_list').click(function (e) { 
    e.preventDefault(); 
    var url = '{{ route("account.save_accounts_to_user") }}'; 
    var post = {}; 
    post.account_list = $("#jsGrid").jsGrid("option", "data"); 

    $.ajax({ 
     type: "POST", 
     url: url, 
     dataType: 'JSON', 
     data: post, 
     cache: false, 
     success: function (data, textStatus, jqXHR) { 
      console.log(textStatus + " - " + data); 
      return data; 
     }, 
     error: function (jqXHR, textStatus, errorThrown) { 
      console.log(jqXHR.responseText + textStatus + " - " + errorThrown); 
     } 
    }); 
    return false; 
}); 

路線:

Route::post('save_accounts_to_user', ['as' => 'account.save_accounts_to_user', 'uses' => '[email protected]']); //ajax request 

控制器:

/** 
* Save all used accounts for a user. 
* 
* @param \Illuminate\Http\Request $request 
* @return \Illuminate\Http\Response 
*/ 
public function saveAccountsToUser(Request $request) 
{ 
    $response = array(); 
    $response["status"] = "ok"; 
    $response["message"] = trans('account.accounts_saved'); 

    return \Response::json($response); 
} 

我期待着我將從控制器方法中獲取JSON文本作爲響應消息。但是,相反,我沒有調用通緝方法而重定向。 我不知道那裏會發生什麼。沒有中間件分配給此路由,這可能是此重定向的原因。

你有什麼想法嗎?

回答

0

可能是由您使用的'X-CSRF-Token'而不是在Laravel文檔中提到的'X-CSRF-TOKEN'是這裏的問題?嘗試完全按照Laravel文檔。請參閱下面的鏈接。

https://laravel.com/docs/5.3/csrf

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

我改了名字的outter組的中間件,但請求仍然被重定向。但我找到了原因。 =) – miago

+1

你能否在這裏提供原因兄弟 – fighter

1

畢竟這是這是重定向請求-.-