1

Flash&html5 をターゲットとする Haxe と Flambe ライブラリを使用してゲームを作成しています。http-requests で REST-api にアクセスする必要があります。そのために、Haxe の Http クラスを使用します。これは現時点での私のテストコードです:

public function getRocketStatus():Void
{
    var urlLoader:Http = new Http("https://seginus-scores.herokuapp.com/api/MailboxMayhem/Highscores/");//"localhost:8000/api/rocket");

    // add parameters
    //urlLoader.addParameter("myVar", "myValue");
    //urlLoader.addParameter("userName", "Mark");

    // callbacks
    urlLoader.onError = function (msg) {requestCompleteSignal.emit(msg);};
    //urlLoader.onStatus = function(status) {requestCompleteSignal.emit(Std.string(status));};
    urlLoader.onData = function(data)
    {
       trace('Sending data completed! data=$data');
       requestCompleteSignal.emit(data);

    }

    // sends to data using GET
    urlLoader.request();

    // sends to data using POST
    urlLoader.request(true);
}

それを使用しようとするたびに、エラーが発生します:

*** Security Sandbox Violation *** Connection to https://seginus-scores.herokuapp.com/api/MailboxMayhem/Highscores/ halted - not permitted from http://localhost:7000/targets/main-flash.swf

Flambe テスト サーバー、ローカルの Apache サーバーなどから使用すると機能しません。Flash ターゲットと html5 ターゲットの間に違いはないようです。また、以前に作成した Unity、通常の Flash、および Java ゲームと正常に接続できるため、API でクロスドメイン ポリシーが正しいはずであることもわかっています。ただし、html5-target から js-console に次のエラーが表示されます。

 No 'Access-Control-Allow-Origin' header is present on the requested resource.

件名に関して少しあいまいなこのHaxeページをすでに確認しました: http://old.haxe.org/doc/flash/security

以前、AS3 で URL リクエストを行ったことがあり、セキュリティ サンドボックスの問題に対処する必要がありました。ただし、これらの場合、クロスドメインを相手側に追加すると、こことは異なり、常に問題が解決するように見えました.

4

1 に答える 1

1

問題が見つかりました。私は今、愚かだと感じています。localhost を使用していたときに、URL に「http://」を追加するのを忘れていました (例http://localhost:8000/api)。また、http しか利用できないときに、上記の呼び出しから https を削除するのを忘れていました。

于 2014-06-08T14:04:56.940 に答える