Вы можете просто проверить, на каком хосте вы находитесь, а затем отправить соответствующий Access-Control-Allow-Origin
только для этого.
$request->getHttpHost()
даст вам имя хоста, которое использовалось в запросе - если вам просто нужно различить на основе этого, мы, вероятно, можем проигнорировать другие вещи, которые также являются частью источника (протокол, порт) здесь, и просто сделать это что-то вроде
public function handle($request, Closure $next)
{
$origin = $request->getHttpHost() == 'localhost' ?
'http://localhost:4200' : 'http://api.example.com';
return $next($request)
->header('Access-Control-Allow-Origin', $origin)
->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE')
->header('Access-Control-Allow-Headers', 'Content-Type');
}
Конечно, вы можете сделать это более "изощренным", если вам это нужно для большего количества возможных источников (например, сопоставить имя хоста с массивом возможных значений, при необходимости принять во внимание протокол и порт), но если вы просто нужны эти два на данный момент, это должно в основном делать.