我使用的是Laravel 5.5
我正在尝试在GET fetch('/ajax-get-save-session')
请求上设置会话变量。
Route::get('/ajax-get-save-session', function() { session(['my_key', 'Saved Session']) });
当我尝试在不同的路径中访问会话变量my_key
时。
Route::get('/access-session', function() { return session('my_key'); });
返回NULL值。
此路线在Laravel web.php
上注册,我使用MDN fetch API
任何?
答案 0 :(得分:1)
如果我理解你的问题。你正在寻找这个。试试这个: -
Use Session; //if your are using laravel 5.2 then add in top in routes. php or laravel 5.2 > greater versions in web.php
// now put data in session
Route::get('/ajax-get-save-session', function() {
Session::put('my_key','Saved Session');
});
//Access the session
Route::get('/access-session', function() { echo Session::get('my_key') });
希望它有所帮助!
答案 1 :(得分:0)
这完全是我的错。我从没想过fetch() API是引起我问题的那个。它说明了
By default, fetch won't send or receive any cookies from the server, resulting in unauthenticated requests if the site relies on maintaining a user session (to send cookies, the credentials init option must be set).
通过做:
fetch(url, { credentials : 'include' }).then(response => response.json())
解决了我的问题!