2010-10-29 64 views
0

我嘗試訪問asmx服務時遇到問題。沒有跨域文件。我讀了有關使用HTTPService而不是web服務的方法。仍然無法加載wsdl。見下面的代碼。任何幫助將不勝感激:ASMX服務和缺少Crossdomain.xml文件

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); 
+0

你看到了什麼錯誤? http://flexmappers.com/crossdomain.xml上的crossdomain.xml看起來沒問題。 – 2010-10-29 18:42:51

回答

1

沒有跨域文件。我看周圍有這樣的 方式使用的HTTPService 而不是Web服務

這聽起來像你誤導。

在基於瀏覽器的應用程序,既不的HTTPService,WebService的和RemoteObject標記是不允許的,除非crossdomain.xml文件存在允許這種訪問遠程服務器上的內容。他們都可以在不使用crossdomain.xml文件的情況下訪問SWF所在域的內容。

爲了解決這個問題,您可以在服務於您的SWF的同一臺服務器上使用HTTP代理。您還可以使用不在瀏覽器中運行的AIR應用程序,因此存在於不同的安全沙箱中。

0

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