0

情報を取得するためにサーバー (url) を呼び出す関数を含む JavaScript ファイルがあります。ここにJavaScript関数があります:

sendQuery = function(devstr) {

    var baseUrl = 'http://serverurl/' + devstr;

    alert("the url is " + baseUrl);

    $.ajax(baseUrl, {
       type: 'GET',
       dataType: 'json'
    }).done(function(results){
       return results;
    }).fail(function(e) {
       showError(e);
    });
}

actionscript から、次のようにこの関数を呼び出しています。

var result:String = ExternalInterface.call("sendQuery", parameter) as String;

呼び出しは実際に行われます (正しい URL で JavaScript からアラートを受け取りました) が、結果は単純に空または null になります。結果は返ってきません。JavaScript で「完了」にアラートを追加しましたが、そのアラートは呼び出されません。

ExternalInterface.addcallback を使用しようとしましたが、パラメーターを渡すことができず、それが機能するかどうかも完全にはわかりません。

Actionscript から Javascript ファイルへの呼び出しを行い、サーバーを呼び出してから、情報を actionscript に戻して解析し、さらに多くのことを行うことができるかどうかは完全にはわかりません。

また、実行する操作の一部には POST 操作が必要であることにも注意してください。actionscript でこれを行わなかった理由は、この情報を要求しているサーバーに crossdomain.xml ファイルが必要だからです。

助けてくれてありがとう。

4

1 に答える 1

0

あなたがやろうとしていることはJavascript、純粋ActionScript3.0URLLoaderクラスなしで行うことができます:

 var baseUrl:String = 'http://serverurl/'+parameter;
 var request:URLRequest = new URLRequest(baseUrl);
 request.contentType = 'application/json';
 request.method = URLRequestMethod.GET;    //For 'POST' request-> URLRequestMethod.POST
 var urlLoader:URLLoader = new URLLoader();
 urlLoader.addEventListener(Event.COMPLETE, function(e:Event):void{
     var result:* = e.target.data;
 });
 urlLoader.load(request);
于 2012-06-21T07:53:44.667 に答える