TsgcWebSocketHTTPServer › Ereignisse › OnCommandOther
Wird ausgelöst, wenn der HTTP-Server eine andere Methode als GET, POST oder HEAD empfängt (PUT, DELETE, OPTIONS, PATCH...).
property OnCommandOther: TIdHTTPCommandEvent;
// TIdHTTPCommandEvent = procedure(AContext: TIdContext; ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo) of object
—
OnCommandOther wird für HTTP-Methoden ausgelöst, die nicht GET, POST oder HEAD sind (PUT, DELETE, OPTIONS, PATCH, TRACE...). Inspizieren Sie ARequestInfo.Command, um herauszufinden, welches Verb verwendet wurde, und ARequestInfo.Document für die Ziel-URI; füllen Sie AResponseInfo.ContentText/ContentStream, ContentType und ResponseNo genau wie in OnCommandGet. Die Behandlung dieses Ereignisses ist die übliche Methode, um REST-Endpunkte zu implementieren, die Verben über GET/POST hinaus akzeptieren; verwenden Sie es zusammen mit OnBeforeCommand, wenn die Anfrage auch eine Autorisierungsprüfung benötigt.
procedure OnCommandOther(AContext: TIdContext; ARequestInfo: TIdHTTPRequestInfo;
AResponseInfo: TIdHTTPResponseInfo);
begin
if SameText(ARequestInfo.Command, 'OPTIONS') then
begin
AResponseInfo.CustomHeaders.Add('Access-Control-Allow-Methods: GET, POST, PUT, DELETE');
AResponseInfo.ResponseNo := 204;
end;
end;