Frage

I have a javascript file which has a function calling a server (url) to get information. Here is the javascript function:

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

and from actionscript I am calling this function as follows:

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

The call actually happens (I got an alert from javascript with the right url) but then result is simply empty or null. There is no result coming back. I added an alert to "done" in javascript and that alert does not get called.

I tried to use ExternalInterface.addcallback but I can't pass parameters and I am not entirely sure if that will work either.

I am not entirely sure to make the call from Actionscript to the Javascript file, which calls the server, and then get the information back to actionscript so I can parse it and do more with it.

I also should note that some of the operations I will be performing require POST operations. The reason I didn't do this through actionscript is because it requires having a crossdomain.xml file on the server I am requesting this information from.

Thanks in advance for the help.

War es hilfreich?

Lösung

What you are trying to do, can be done without Javascript in pure ActionScript3.0 by URLLoader class:

 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);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top