TsgcWebSocketHTTPServer › Gebeurtenissen › OnCommandOther
Wordt geactiveerd wanneer de HTTP-server een andere methode dan GET, POST of HEAD ontvangt (PUT, DELETE, OPTIONS, PATCH...).
property OnCommandOther: TIdHTTPCommandEvent;
// TIdHTTPCommandEvent = procedure(AContext: TIdContext; ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo) of object
—
OnCommandOther wordt geactiveerd voor HTTP-methoden die geen GET, POST of HEAD zijn (PUT, DELETE, OPTIONS, PATCH, TRACE...). Controleer ARequestInfo.Command om te zien welk werkwoord is gebruikt en ARequestInfo.Document voor de doel-URI; vul AResponseInfo.ContentText/ContentStream, ContentType en ResponseNo in, net als bij OnCommandGet. Het afhandelen van deze gebeurtenis is de gebruikelijke manier om REST-eindpunten te implementeren die andere werkwoorden dan GET/POST accepteren; gebruik het samen met OnBeforeCommand wanneer het verzoek ook autorisatiescreening vereist.
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;