ASMX服务和缺少Crossdomain.xml文件

时间:2010-10-29 18:07:46

标签: flex

我正在尝试访问的asmx服务存在问题。没有跨域文件。我读到有一种解决方法,使用HTTPService而不是webservice。仍然无法加载wsdl。见下面的代码。任何帮助将不胜感激:

var dataService:HTTPService = new HTTPService();
dataService.url = 
    "http://flexmappers.com/proxy.php?url=http://www.server.net/carbon.asmx";
dataService.method = "POST";
dataService.addEventListener("result", onCarbonCalcResult);
dataService.addEventListener("fault", onCarbonCalcFault);
//dataService.resultFormat = "xml"

var params:Object = new Object();
params["call"] = "getCarbon";
params.area = carbonarea;
params.geojson = geojson;
dataService.send(params); 

2 个答案:

答案 0 :(得分:1)

  

没有跨域文件。我看过有一个   使用HTTPService解决这个问题   而不是网络服务

听起来你被误导了。

在基于浏览器的应用程序中,除非存在允许此类访问的crossdomain.xml文件,否则不允许HTTPService,WebService和RemoteObject标记访问远程服务器上的内容。他们都可以访问与SWF相同的域中的内容,而无需使用crossdomain.xml文件。

要解决此问题,您可以在为SWF提供服务的同一台服务器上使用HTTP代理。您还可以使用不在浏览器中运行的AIR应用程序,因此存在于不同的安全沙箱中。

答案 1 :(得分:0)

您可以使用BlazeDS或Apache HTTP创建自己的代理。