Пример #1
0
        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);
            }
        }
Пример #2
0
        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);
            }
        }
Пример #3
0
        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!
            }
        }
Пример #4
0
        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!
            }
        }