我无法在tidhttpServer中获取请求的来源

时间:2018-02-14 12:35:49

标签: delphi xmlhttprequest http-headers delphi-10.1-berlin

我试图在Origin中获取TIdHTTPServer个请求,但我看到我有权访问的是Host

由于它是Delphi,我认为他们可能会设置Host请求,所以如果我这样做:

s := ARequestInfo.Host;

我会让主持人成为它的起源。但不,Host是我,就像在正常的世界中一样。

但是,出于某种原因,他们没有制作Origin财产,所以我不知道如何获得它,我需要知道Origin来做出我的回应。< / p>

我尝试用原点获取原点:

s := ARequestInfo.CustomHeaders.Values['Origin'];

但它是空的。

我在浏览器的请求中看到Origin是localhost或null。

这是我管理请求的程序:

procedure TRestService.commandGet(AContext: TIdContext;
  ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
var
  // ...
  s : string;
begin
  s := ARequestInfo.CustomHeaders.Values['Origin']; < always empty
  // rest of the code here...
end;

编辑我找到了解决方案:

s := ARequestInfo.RawHeaders.Values['origin'];

只需使用RawHeaders

1 个答案:

答案 0 :(得分:0)

ARequestInfo.RawHeaders.Values['origin'];

我必须使用CustomHeader而不是RawHeaders。 创建响应时自定义标头是用户,而原始标头是发送请求的浏览器/应用程序发送的标头。