PHP | header在catch块中设置,无异常

时间:2015-07-31 00:15:04

标签: php exception header try-catch

好的,我有这个奇怪的问题。

如果try块抛出异常,我想将标头设置为401 - 未经授权。

try {
    $decoded = JWT::decode($jwt, $key, array('HS256'));
    var_dump($decoded);
} catch (Exception $e) {        
    header('HTTP/1.0 401 Unauthorized');
}

但即使try块没有抛出异常,标题也会被设置。

如果我尝试使用

打印出异常消息
try {
    $decoded = JWT::decode($jwt, $key, array('HS256'));
    var_dump($decoded);
} catch (Exception $e) {        
    echo $e->getMessage();
}

var_dump($decoded)被打印出来。

TLTR: 即使try块没有抛出异常,标头也会被设置。

编辑: 我发现问题只存在于我的本地项目中。 我正在使用xampp,任何想法?

编辑²:好的。我发现它不适用于CORS。谁能告诉我如何正确启用CORS?

我的.htaccess:

Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Headers: "Origin, content-type, accept, Authorization"

错误消息:CORS请求被阻止:[...] CORS-Preflight-Channel未成功。

0 个答案:

没有答案