Hi Robert,
you're quite right, the proxy wasn't being prefixed to the requests.
I've added code in registerMapLayer to add the proxy and it is behaving now.
NB. Have not tested on tiled or feature services.
We had not applied any of the service packs so were on version 10.00, so it was previously using the getAllDetailsResult function.
I'm not sure why it was presenting as a crossdomain rather than an invalid token as the domain should have been good, but working now.
Thanks for all the public work you put out here for us.
Steven
Code:
private function registerMapLayer(layer:*):void
{
var httpServ:HTTPService = new HTTPService();
var lname:String
if (layer is ArcGISTiledMapServiceLayer)
{
if(layer.version >= 10.01)
{
if (ArcGISTiledMapServiceLayer(layer).proxyURL != ""){
httpServ.url = ArcGISTiledMapServiceLayer(layer).proxyURL + "?" + ArcGISTiledMapServiceLayer(layer).url + "/legend?f=json";
}else{
httpServ.url = ArcGISTiledMapServiceLayer(layer).url + "/legend?f=json";
}
httpServ.resultFormat = "text";
lname = ArcGISTiledMapServiceLayer(layer).id;
httpServ.addEventListener(ResultEvent.RESULT,function(event:ResultEvent):void{processLegend(event,lname)});
httpServ.send();
}else{
lname = ArcGISTiledMapServiceLayer(layer).id;
ArcGISTiledMapServiceLayer(layer).addEventListener(DetailsEvent.GET_ALL_DETAILS_COMPLETE,function(event:DetailsEvent):void{getAllDetailsResult(event,lname)});
ArcGISTiledMapServiceLayer(layer).getAllDetails();
}
}
else if (layer is ArcGISDynamicMapServiceLayer)
{
if(layer.version >= 10.01)
{
if (ArcGISDynamicMapServiceLayer(layer).proxyURL != ""){
httpServ.url = ArcGISDynamicMapServiceLayer(layer).proxyURL + "?" + ArcGISDynamicMapServiceLayer(layer).url + "/legend?f=json";
}else{
httpServ.url = ArcGISDynamicMapServiceLayer(layer).url + "/legend?f=json";
}
httpServ.resultFormat = "text";
lname = ArcGISDynamicMapServiceLayer(layer).id;
httpServ.addEventListener(ResultEvent.RESULT,function(event:ResultEvent):void{processLegend(event,lname)});
httpServ.send();
}else{
lname = ArcGISDynamicMapServiceLayer(layer).id;
ArcGISDynamicMapServiceLayer(layer).addEventListener(DetailsEvent.GET_ALL_DETAILS_COMPLETE,function(event:DetailsEvent):void{getAllDetailsResult(event,lname)});
ArcGISDynamicMapServiceLayer(layer).getAllDetails();
}
}
else if (layer is FeatureLayer)
{
var FeatServId:Number = Number.NaN;
var msName:String;
if (FeatureLayer(layer).proxyURL != ""){
msName = FeatureLayer(layer).proxyURL + "?" + FeatureLayer(layer).url.replace("FeatureServer","MapServer");
}else{
msName = FeatureLayer(layer).url.replace("FeatureServer","MapServer");
}
var x:String = msName.substring(msName.length - 9);
if(msName.substring(msName.length - 9) != "MapServer")
{
httpServ.url = msName.substring(0,msName.lastIndexOf("/")) + "/legend?f=json";
FeatServId = parseInt(msName.substring(msName.lastIndexOf("/")+ 1));
}else{
httpServ.url = msName + "/legend?f=json";
}
if(layer.layerDetails.version >= 10.01)
{
httpServ.resultFormat = "text";
lname = FeatureLayer(layer).id;
httpServ.addEventListener(ResultEvent.RESULT,function(event:ResultEvent):void{processLegend(event,lname,FeatServId)});
httpServ.send();
} else {
lname = FeatureLayer(layer).id;
getFeatureResult(FeatureLayer(layer).layerDetails,lname);
}
}
}
Bookmarks