private void CORS() { xhr = new XMLHttpRequest2(); try { xhr.Open(HttpVerb.Get, _url); if (ResponseType != null) { xhr.ResponseType = ResponseType; } xhr.OnReadyStateChange = delegate() { if (xhr.ReadyState == ReadyState.Loaded) { if (xhr.Status == 0) { if (!triedOnce) { triedOnce = true; xhr.OnReadyStateChange = null; string new_url = URLHelpers.singleton.activateProxy(_url); if (new_url != null) // null => don't bother: we know that the proxy won't help { _url = new_url; CORS(); } } } else { if (ResponseType == "") { LoadData(xhr.ResponseText); } else { LoadBlob(xhr.Response); } } } }; xhr.Send(); } catch (Exception err) { _message = err.Message; State = StateType.Error; throw (err); } }
private void CORS() { xhr = new XMLHttpRequest2(); try { xhr.Open(HttpVerb.Get, _url); if (ResponseType != null) { xhr.ResponseType = ResponseType; } xhr.OnReadyStateChange = delegate() { if (xhr.ReadyState == ReadyState.Loaded) { if (xhr.Status == 0) { if (!triedOnce) { triedOnce = true; xhr.OnReadyStateChange = null; _url = Util.GetProxiedUrl(_url); CORS(); } } else { if (ResponseType == "") { LoadData(xhr.ResponseText); } else { LoadBlob(xhr.Response); } } } }; xhr.Send(); } catch (Exception err) { _message = err.Message; State = StateType.Error; throw (err); } }
public void RequestDem() { if (!ReadyToRender && !demDownloading) { demTile = true; demDownloading = true; callCount++; XMLHttpRequest2 xhr = new XMLHttpRequest2(); xhr.AddEventListener("load", delegate(ElementEvent e) { DemReady = true; demDownloading = false; ReadyToRender = texReady && (DemReady || !demTile); RequestPending = false; try { demFile = new Float32Array(xhr.Response); } catch { } TileCache.RemoveFromQueue(this.Key, true); }, false); xhr.AddEventListener("error", delegate(ElementEvent e) { demDownloading = false; DemReady = false; ReadyToRender = false; errored = true; RequestPending = false; TileCache.RemoveFromQueue(this.Key, true); }, false); xhr.Open(HttpVerb.Get, DemURL /*.Replace("cdn.", "www.")*/, true); xhr.ResponseType = "arraybuffer"; xhr.Send(); // TODO add event listener for failed! } }
public void RequestDem() { if (!ReadyToRender && !demDownloading) { demTile = true; demDownloading = true; callCount++; XMLHttpRequest2 xhr = new XMLHttpRequest2(); xhr.AddEventListener("load", delegate(ElementEvent e) { DemReady = true; demDownloading = false; ReadyToRender = texReady && (DemReady || !demTile); RequestPending = false; try { demFile = new Float32Array(xhr.Response); } catch { } TileCache.RemoveFromQueue(this.Key, true); }, false); xhr.AddEventListener("error", delegate(ElementEvent e) { demDownloading = false; DemReady = false; ReadyToRender = false; errored = true; RequestPending = false; TileCache.RemoveFromQueue(this.Key, true); }, false); xhr.Open(HttpVerb.Get, DemURL/*.Replace("cdn.", "www.")*/, true); xhr.ResponseType = "arraybuffer"; xhr.Send(); // TODO add event listener for failed! } }