我想使用http选项
OPTIONS /MyURL/DoCmd HTTP/1.1
Origin: http://www.asite.com
Access-Control-Request-Method: POST
Access-Control-Request-Headers: access-control-request-method
用印地做到这一点的方法是什么?
FIdHttp.Options('http://' + FHost + ':' + IntToStr(FPort) + '/MyURL/DoCmd', AResponseContent);
如果服务器未实现选项会发生什么?
用印地做到这一点的方法是什么?
Indy 10中的TIdHTTP
具有2个超载Options()
方法:
procedure Options(AURL: string; AResponseContent: TStream); overload;
function Options(AURL: string
{$IFDEF STRING_IS_ANSI}; ADestEncoding: IIdTextEncoding = nil{$ENDIF}
): string; overload;
TIdHTTP
没有的是Origin
和Access-Control-Request-...
标头的本机属性。但是,您可以将TIdHTTP.Request.CustomHeaders
属性用于这些属性,例如:
FIdHttp.Request.CustomHeaders.Values['Origin'] := 'http://www.asite.com';
FIdHttp.Request.CustomHeaders.Values['Access-Control-Request-Method'] := ' POST';
FIdHttp.Request.CustomHeaders.Values['Access-Control-Request-Headers'] := 'access-control-request-method';
FIdHttp.ProtocolVersion := pv1_1;
Response := FIdHttp.Options('http://www.asite.com/MyURL/DoCmd');
or
FIdHttp.Options('http://www.asite.com/MyURL/DoCmd', AResponseContent);
如果服务器未实现选项会发生什么?
服务器可能会返回错误代码,除非您在TIdHTTP.HTTPOptions
属性中启用hoNoProtocolErrorException
标志,否则TIdHTTP
将作为EIdHTTPProtocolException
例外。