我正试图通过Laravel中的ajax推送一些数据。不幸的是它不起作用。当我在观看网络流量时,我发现了这个:
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' => '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。但相反,我没有调用想要的方法重定向。 我不知道那里发生了什么。没有为此路由分配中间件,这可能是此重定向的原因。
你有想法吗?
答案 0 :(得分:2)
毕竟它是一个外部组的中间件,它正在重定向请求-.-
答案 1 :(得分:0)
添加此代码:
$.ajaxSetup({
headers: {'X-CSRF-Token': $('meta[name=token]').attr('content')}
});
之后:
var url = '{{ route("account.save_accounts_to_user") }}';
答案 2 :(得分:0)
在 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) {
}
});