如何对调用服务器以获取信息的JavaScript文件进行外部接口调用

时间:2012-06-21 07:40:37

标签: javascript actionscript externalinterface

我有一个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;

调用实际发生了(我从javascript获得了一个带有正确url的警报),但结果只是空或null。没有结果回来。我在javascript中添加了一个“完成”的警报,并且不会调用该警报。

我尝试使用ExternalInterface.addcallback,但我无法传递参数,我不完全确定这是否也可以。

我不完全确定从Actionscript调用调用服务器的Javascript文件,然后将信息返回到actionscript,这样我就可以解析它并用它做更多的事情。

我还应该注意,我将要执行的一些操作需要POST操作。我没有通过actionscript执行此操作的原因是因为它要求在我请求此信息的服务器上有一个crossdomain.xml文件。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您要尝试做的事情,可以在纯Javascript URLLoader课程中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); 完成:

{{1}}