0

我有一个javascript文件,它有一个调用服务器(url)来获取信息的函数。这是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

您正在尝试做的事情,可以在没有JavascriptURLLoader类ActionScript3.0的情况下完成:

 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 回答