ページが読み込まれると、次のコードを使用して、他のコンテンツやヘッダーの前に PHP を介して Cookie が作成されます。
$steam_login_verify = SteamSignIn::validate();
if(isset($_COOKIE['userid']))
{
//work with cookie value to get data;
$steam_login_verify = $_COOKIE['userid'];
$id = new SteamId($steam_login_verify);
$name = $id->getNickname();
$baseUrl = $id->getBaseUrl();
$medAvatar = $id->getMediumAvatarUrl();
} else if(!empty($steam_login_verify))
{
//create the cookie and store the user id as the value
$exDate = time()+60*60*24*365;
setcookie('userid', $steam_login_verify, $exDate,'/');
$id = new SteamId($steam_login_verify);
$name = $id->getNickname();
$baseUrl = $id->getBaseUrl();
$medAvatar = $id->getMediumAvatarUrl();
}
次に、James Auldridge のjQuery 用 Cookie プラグインを使用して Cookie を管理しています。
ユーザーが Stream 経由でログインすると、Steam64Id が Cookie に 1 年間保存され、ページにアクセスするたびにログインする必要がなくなります (定期的にアクセスすると仮定)。
次に、Ajax 呼び出しで Steam64Id を使用して、すべてのユーザーの友達を取得し、select 要素に名前を入力します。
ページには「ログアウト」ボタンがあり、クリックすると Cookie が削除され、ページが更新されるため、ユーザーは再度 Steam 経由でログインする必要があります。これは私が問題を抱えているところです。
ajax 呼び出しが実行されている限り (実行に約 57 秒かかります)、ログアウト ボタンは正常に機能します。その呼び出しが完了し、select 要素が入力されると、ログアウト ボタンは失敗し、コンソールに次のエラーが表示されます。
Uncaught TypeError: Cannot call method 'del' of undefined
このエラーが参照するコードは、Cookie を削除してページを更新する関数です。
$('#logout').click(function() {
$.cookies.del('userid');
window.location.reload();
});
エラー、またはエラーがスローされる理由がわかりません。ここで何か助けていただければ幸いです。