delphi idhttpserver ajax 跨域

解决方案
TIdHTTPServer的onCommandGet方法有三个参数,分别是上下文,请求体,响应体。
我们只需要在响应体中加上Access-Control-Allow-Origin、Access-Control-Allow-Headers、Access-Control-Allow-Method三个配置即可

procedure TMain.idHttpServerCommandGet(AContext: TIdContext; ARequestInfo: TIdHTTPRequestInfo; 
    AResponseInfo: TIdHTTPResponseInfo);
begin
    AResponseInfo.CustomHeaders.Add('Access-Control-Allow-Origin:*');
    AResponseInfo.CustomHeaders.Add('Access-Control-Allow-Headers:*');
    AResponseInfo.CustomHeaders.Add('Access-Control-Allow-Method:*');
end;
注意:大家比较常用的是onCommandGet方法,但实际上他默认没有调用onCommandGet方法,而是调用了onCommandOther方法。所以我们应该把业务逻辑封装一下,然后分别在get和other事件里调用这个公用方法,当然也可以效仿java servlet中常用的写法,onPost里面直接调用onGet。
--------------------- 
作者:leandzgc 
来源:CSDN 
原文:https://blog.csdn.net/leandzgc/article/details/87733170 
版权声明:本文为博主原创文章,转载请附上博文链接!

你可能感兴趣的:(Delphi)