Merhaba Ben de aynı sorunla karşılaştım. Pasaportta bir hata gibi görünüyor ve birçok geliştirici aynı durumda. Bu sorunun çözümünü yeni buldum. Bu hatayı almamın nedeni, middleware
'a aldığımız Yanıt nesnesinin genellikle Illuminate\Http\Response
sınıfının bir örneğidir, header('Header-Key', 'Header-Value')
yöntemini kullanarak Yanıt üstbilgileri ayarlayabiliriz, ancak Passport tarafından ele alınan İstek Symfony\Component\HttpFoundation\Response
örneğidir ve bu yüzden hatayı aldık Call to undefined method Symfony\Component\HttpFoundation\Response::header()
Bu hata ile mücadele etmek için kullandığım kod aşağıdadır ve şimdi her şey düzgün çalışıyor. Umarım diğer geliştiricilerin fikrin nasıl düzeltileceğine ve daha sonra kodlarına uyum sağlamasına yardımcı olur.
$response = $next($request);
$IlluminateResponse = 'Illuminate\Http\Response';
$SymfonyResopnse = 'Symfony\Component\HttpFoundation\Response';
$headers = [
'Access-Control-Allow-Origin' => '*',
'Access-Control-Allow-Methods' => 'POST, GET, OPTIONS, PUT, PATCH, DELETE',
'Access-Control-Allow-Headers' => 'Access-Control-Allow-Headers, Origin,Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Authorization , Access-Control-Request-Headers',
];
if($response instanceof $IlluminateResponse) {
foreach ($headers as $key => $value) {
$response->header($key, $value);
}
return $response;
}
if($response instanceof $SymfonyResopnse) {
foreach ($headers as $key => $value) {
$response->headers->set($key, $value);
}
return $response;
}
return $response;
Ve içinde
benim her librairies sürümlerini görebilirsiniz
Kernel.php
protected $middleware = [
\App\Http\Middleware\Cors::class,
// ....
];
Eğer 'composer.json' dosyasını paylaşabilir miyim? –
lütfen şunu deneyin: '$ response-> headers-> set ($ anahtar, $ değer)' –
Pasaportun sizin için CORS tarafından ele alındığı izlenimindeyim? – Joe