Javascript Laravel Ajax POST请求不起作用:找到302
我正在尝试通过Laravel中的ajax推送一些数据。不幸的是,它不起作用。当我观察网络流量时,我发现:Javascript Laravel Ajax POST请求不起作用:找到302,javascript,php,jquery,ajax,laravel,Javascript,Php,Jquery,Ajax,Laravel,我正在尝试通过Laravel中的ajax推送一些数据。不幸的是,它不起作用。当我观察网络流量时,我发现: Request Method:POST Status Code:302 Found 我试图从JSGrid中获取数据,这很好。数据对象已填充。我查过了。为了进行测试,我刚刚在控制器中返回了一条短消息。但当我发送邮件请求时,它甚至没有被调用 这是我的密码 Javascript: $.ajaxSetup({ headers: {'X-CSRF-Token': $('meta[name=t
Request Method:POST
Status Code:302 Found
我试图从JSGrid中获取数据,这很好。数据对象已填充。我查过了。为了进行测试,我刚刚在控制器中返回了一条短消息。但当我发送邮件请求时,它甚至没有被调用
这是我的密码
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' => 'AccountController@saveAccountsToUser']); //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文本作为responsemessage。但是我没有调用想要的方法,而是被重定向了。
我不知道那里发生了什么。没有为该路由分配中间件,这可能是此重定向的原因
您有什么想法吗?可能是您使用的“X-CSRF-Token”而不是Laravel文档中提到的“X-CSRF-Token”,这里的问题是什么?尝试完全遵循Laravel文档。请参阅下面的链接
毕竟,它是一个outter组的中间件,该组正在重定向请求-。-添加以下代码:
$.ajaxSetup({
headers: {'X-CSRF-Token': $('meta[name=token]').attr('content')}
});
在此之后:
var url = '{{ route("account.save_accounts_to_user") }}';
在AJAX调用中使用头 例如:
$.ajax({
type: "POST",
url: link, // your link
data: DataObject, // data to pass
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: function (result) {
}
});
我更改了名称,但请求仍被重定向。但我找到了原因=你能在这里提供原因吗?但是为什么这会回答这个问题?@justCarty只是因为我们总是把标题放在ajax begin中,在你的情况下,你把它放在ajax开始之前。
$.ajax({
type: "POST",
url: link, // your link
data: DataObject, // data to pass
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
success: function (result) {
}
});