2017-02-23 174 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

毕竟这是这是重定向请求-.-