質問

サーバーにWSDL / SOAPの基本認証メカニズムがあります。 「承認」を送信する方法Flex WebServiceを介したヘッダー?

簡単な例:

var ws:WebService = new WebService();
ws.wsdl = "http://localhost:8000/api/service.wsdl"

var encoder:Base64Encoder = new Base64Encoder();
encoder.insertNewLines = false;
encoder.encode("SomeUser:SomePassword");

ws.httpHeaders = {AUTHORIZATION : "Basic " + encoder.toString()};

ws.loadWSDL();

var operation:AbstractOperation = ws.get_info;
operation.send();

そしてエラーが表示されます:

Error #2096: The HTTP request header AUTHORIZATION cannot be set via ActionScript.

Flexアプリケーションとサーバーは同じドメインにあります。 また、サーバーのルートにcrossdomain.xmlファイルがあります( http:// localhost:8000 / crossdomain.xml )しかし、flexによって呼び出されることはありません(ログファイルから知っています)。とにかくこのファイルを提供します:

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
    <allow-access-from domain="*"/>
    <site-control permitted-cross-domain-policies="all"/>
    <allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>

ありがとう、 Zinovii

役に立ちましたか?

解決

Flexでこれを行う必要はありませんでしたが、どのバージョンのFlashプラグインを実行していますか?バージョン9.0.115.0。そのヘッダーの使用は完全にブロックされますが、新しいバージョンではcrossdomain.xml構成でヘッダーを使用できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top