2017-03-06 8 views
2

私はインディでこれを作るための方法は何ですかHTTPオプション]デルファイインディのHTTP OPTIONS

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); 

OPTIONSがサーバーによって実装されていないとどうなりますか?

答えて

4

Indyでこれを行う方法は何ですか?インディ10で

TIdHTTP 2はOptions()メソッドオーバーロードしています持っていない何TIdHTTP

procedure Options(AURL: string; AResponseContent: TStream); overload; 

function Options(AURL: string 
    {$IFDEF STRING_IS_ANSI}; ADestEncoding: IIdTextEncoding = nil{$ENDIF} 
): string; overload; 

OriginAccess-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); 

OPTIONSがサーバーによって実装されていない場合はどうなりますか?

サーバは、おそらくあなたがTIdHTTP.HTTPOptions財産でhoNoProtocolErrorExceptionフラグを有効にしない限りTIdHTTPEIdHTTPProtocolException例外として発生しますエラーコードを返します。

+0

デルファイベルリンでは、私はIndyの手続きオプションしか持っていません。それは "handmadeサーバー"である私のserveurであると思われます:それは、SERVICEのログがOPTIONSメソッドの情報に答えるとしても、メッセージなしでエラーを発生させます。 –

+0

TNetHTTPRequestと同じ問題があります –

関連する問題