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

How to make an externalinterface call to a JavaScript file which calls a server to get informtion

本文关键字:调用 外部 接口 获取 信息 文件 服务器 JavaScript      更新时间:2023-09-26

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

从动作脚本中,我调用此函数如下:

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

调用确实发生了(我收到了来自javascript的带有正确URL的警报),但结果只是空或空。没有结果回来。我在javascript中向"完成"添加了一个警报,并且该警报没有被调用。

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

我不完全确定是否从 Actionscript 调用 Javascript 文件,该文件调用服务器,然后将信息返回 actionscript,以便我可以解析它并对其进行更多操作。

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

提前感谢您的帮助。

您正在尝试做的事情可以在没有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);