如果我在 Slim 框架提供的 `setCookie()` 之后使用 `exit()` 将无法工作
`setCookie()` that Slim framework provides will not work if I use `exit()` after it
我需要使用 ajax 请求来执行登录。这是请求转到的函数:
function loginAdmin() {
$app = \Slim\Slim::getInstance();
if (auth()) {
$app->setCookie('admin', TRUE);
exit(TRUE);
}
exit(NULL);
}
然后我将处理 ajax 响应以查看它是否属实。但是cookie不会被设置。如果我删除 exit(TRUE)
可以设置 cookie。
我读过Slim的源代码,setCookie()
函数调用\Slim\Http\Cookies::setCookie()
,将键和值设置到$data
成员中。但我不确定 cookie 何时发送。
但我仍然不知道 exit
功能如何影响 setCookie
功能。
您无法使用 exit()
发送回复。您应该 echo()
路由中的响应。例如:
function loginAdmin() {
$app = \Slim\Slim::getInstance();
if (auth()) {
$app->setCookie('admin', TRUE);
return 1;
}
return 0;
}
$app->get('/foo', function {
echo loginAdmin();
});
以上代码不是进行身份验证的好方法,但它说明了这一点。
我需要使用 ajax 请求来执行登录。这是请求转到的函数:
function loginAdmin() {
$app = \Slim\Slim::getInstance();
if (auth()) {
$app->setCookie('admin', TRUE);
exit(TRUE);
}
exit(NULL);
}
然后我将处理 ajax 响应以查看它是否属实。但是cookie不会被设置。如果我删除 exit(TRUE)
可以设置 cookie。
我读过Slim的源代码,setCookie()
函数调用\Slim\Http\Cookies::setCookie()
,将键和值设置到$data
成员中。但我不确定 cookie 何时发送。
但我仍然不知道 exit
功能如何影响 setCookie
功能。
您无法使用 exit()
发送回复。您应该 echo()
路由中的响应。例如:
function loginAdmin() {
$app = \Slim\Slim::getInstance();
if (auth()) {
$app->setCookie('admin', TRUE);
return 1;
}
return 0;
}
$app->get('/foo', function {
echo loginAdmin();
});
以上代码不是进行身份验证的好方法,但它说明了这一点。