【发布时间】:2016-05-12 22:53:33
【问题描述】:
你能给我建议吗?
我正在 COOKIES 中保存一些数据。我在 Laravel 中为此创建了方法,所以我在这个方法上调用 ajax 来设置 cookie,但是当我尝试调用访问这个 cookie 值的下一个请求时,它没有被保存,我可以在第二个请求中访问它......我不不知道为什么......这很奇怪:/
我有这个代码:
public function setCookie: method in laravel controller to set cookie
var setCookie: function in javascript where I call ajax request to set cookie
var loadEvents: method called after ajax call where I set cookie.
public function setCookie(Request $request) {
$cookieName = $request->input('cookie_name');
$cookieVal = $request->input('cookie_val');
return response()->json(['status' => 'success'])->withCookie(cookie($cookieName, $cookieVal));
}
var setCookie = function (cookieName, cookieVal) {
$.ajax({
type: 'POST',
url: window.setCookieUrl,
data: {
cookie_name: cookieName,
cookie_val: cookieVal,
_token: getCsrfToken()
}
}).done();
};
public function loadEvents(Request $request) {
$activeCalendarsIds = $request->input('active_calendars_ids');
if($activeCalendarsIds == null)
$activeCalendarsIds = Cookie::get('adminActiveCalendars');
$eventsPage = $this->getPostParam('page');
$eventsLimit = $this->getPostParam('limit');
$this->service->setFilter('page', $eventsPage);
$this->service->setFilter('limit', $eventsLimit);
$events = $this->service->getCalendarsEvents($activeCalendarsIds);
$eventList = view('admin/calendar/event_list', ['events' => $events]);
return response()->json([
'status' => 'success',
'data' => '' . $eventList . ''
]);
}
【问题讨论】:
-
你确定设置 cookie 的 AJAX 调用在使用 cookie 的调用之前已经完成了吗?
-
如果 cookie 设置方法正是你发布的,你可以从 Javascript 设置 cookie
-
是的,完成了,因为我检查了AJAX调用响应。问题是,在 Laravel5 中使用 JavaScript 设置 cookie 很复杂,因为 laravel 在数据库中设置了 cookie。
-
$activeCalendarsIds = $request->cookie('adminActiveCalendars'); 怎么样
-
不:/这不起作用。
标签: javascript php ajax cookies laravel-5