У меня возникли проблемы с предварительным запросом CORS OPTIONS с моим угловым приложением.Короче говоря, я пытаюсь реализовать простой вход в систему, который отправляет запрос POST на мой сервер, серверная часть которого построена с использованием PHP \ Slim, с учетными данными пользователя.Сначала запрашиваются CORS OPTIONS, и я обрабатываю его с помощью slim, чтобы ответить 200 OK, поэтому, когда браузер получает OK, он, наконец, отправляет мой POST с учетными данными, но затем он просто зависает ... без кода ответа, ничего.
Честно говоря, это ошеломляет меня, и я буквально догадываюсь, что с моей службой запросов что-то не так, поскольку это единственная служба, отправляющая запрос OPTIONS, для начала.
Сумасшедшая вещь в том, чтопосле того, как я спамлю кнопку входа, она в конечном итоге сдается и отвечает.
I checked the network requests and this is the idea of what it looks like:
200 OPTIONS
POST
200 OPTIONS
POST
the posts are just blank
Это мой сервис.
signin(user: User): Observable<Result> {
return this._http.post<Result>( this.base + this.signinURL, user )
.pipe(catchError(this.error));
}
private error(error: HttpErrorResponse) {
return throwError(error);
}
вот маршруты, связанные с CORS
$app->options('/{routes:.+}', function (Request $request, Response $response, $args) {
return $response->withStatus(200);
});
$app->add(function (Request $req, Response $res, $next) {
$response = $next($req, $res);
return $response
->withHeader('Access-Control-Allow-Origin', 'http://localhost:4200')
->withHeader('Access-Control-Allow-Headers', 'X-Requested-With, Content-Type, Accept, Origin, Authorization')
->withHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, PATCH, OPTIONS');
});
$app->map(['GET', 'POST', 'PUT', 'DELETE', 'PATCH'], '/{routes:.+}', function(Request $req, Response $res) {
$handler = $this->notFoundHandler;
return $handler($req, $res);
});
Также стоит упомянуть, что я запускаю интерфейс на сервере Angular CLI и PHP на PHP Server v7.3.
Если кто-то может просто объяснить мне, что происходит и почему я 'буду счастлив, спасибо за мысли ...:)