你好,我有以下代码:
$cleanToken = $token->cutToken($auth_header);
if($cleanToken)
{
if($user->logout($cleanToken))
{
http_response_code(200);
}
else
{
http_response_code(401);
}
echo json_encode('true: ' . $cleanToken);
}
else
{
echo json_encode('false' . $cleanToken);
http_response_code(401);
}
cutToken
函数返回字符串或false。上面的代码在控制台中给我错误
无法加载http://localhost/obiezaca/v2/api/auth/doLogout.php:预检的响应包含无效的HTTP状态代码401
我也没能看到任何回复。尽管我在前端安慰了它。 时,我从最后一行中删除了http_response_code(401);
,错误停止显示代码似乎正常工作,我可以在我的控制台中看到true: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6IjIwIn0.EAEOBEDxweNnMB-iHCD5qFcn_VYKguHO8Vr3jImChhc
响应。
所以要说清楚 - 当我在第一个条件代码的其他地方出现http_response_code(401);
时不能正常工作并且给我错误。当我删除此行代码似乎工作时,它没有给我任何错误,我能够在控制台中看到真正的..token ..
这对我来说非常奇怪,因为它看起来像添加http_response_code正在改变$ cleanToken是否给出了真或假是不可能的......这里发生了什么?
cutToken函数是:
public function cutToken($auth_header)
{
if (isset($auth_header))
{
$dirtyToken_trimmed = trim($auth_header);
if (!empty($dirtyToken_trimmed))
{
if(preg_match('/Bearer\s(\S+)/', $dirtyToken_trimmed, $matches))
{
return $matches[1];
}
else
{
return false;
}
}
else
{
return false;
}
}
else
{
return false;
}
}