예제 #1
0
        public void Then(
            Delegate fulfilledHandler, Delegate errorHandler = null, Delegate progressHandler = null)
        {
            var req = new XMLHttpRequest();

            req.OnReadyStateChange = () => {
                if (req.ReadyState != AjaxReadyState.Done)
                {
                    return;
                }

                if (req.Status >= 200 && req.Status < 400)
                {
                    Logger.Debug(GetType(), "upload success");
                    fulfilledHandler?.Call(null, ResultHolder <XMLHttpRequest> .CreateSuccess(req));
                    return;
                }

                Logger.Debug(GetType(), "upload error");
                fulfilledHandler?.Call(
                    null, ResultHolder <XMLHttpRequest> .CreateFailure(req.ResponseText, null, req));
            };
            req.Open(_method, _url, true);

            req.SetRequestHeader("Cache-Control", "no-cache");
            req.SetRequestHeader("Pragma", "no-cache");

            var tzOffset = Script.Eval <string>("new Date().getTimezoneOffset() + \"\"");

            req.SetRequestHeader(Philadelphia.Common.Model.Magics.TimeZoneOffsetFieldName, tzOffset);

            try {
                var tzCode = Script.Eval <object>("Intl.DateTimeFormat().resolvedOptions().timeZone");
                if (Script.IsDefined(tzCode))
                {
                    req.SetRequestHeader(Philadelphia.Common.Model.Magics.TimeZoneCodeFieldName, tzCode.ToString());
                }
            } catch (Exception) {
                //most likely it is unsupported
                Logger.Error(GetType(), "could not determine timeZone");
            }

            if (CsrfToken != null)
            {
                req.SetRequestHeader(Philadelphia.Common.Model.Magics.CsrfTokenFieldName, CsrfToken);
            }

            if (_frmData != null)
            {
                req.Send(_frmData);
            }
            else
            {
                req.Send(_dataToPost);
            }
        }
예제 #2
0
        public void Then(Delegate fulfilledHandler, Delegate errorHandler, Delegate progressHandler = null)
        {
            jQuery.Ajax(new AjaxOptions
            {
                Type        = "POST",
                Url         = Url,
                Data        = Data,
                Async       = true,
                ContentType = "JSON",
                Success     = (o, s, arg3) =>
                {
                    ResponseText = arg3.ResponseText;
                    fulfilledHandler.Call(null, this);
                },

                Error = (jqXhr, status, errror) =>
                {
                    _error = "Ajax Error Occured. For this reason 'POST' operation was canceled." + Environment.NewLine +
                             "@status   :" + status + Environment.NewLine +
                             "@errror   :" + errror + Environment.NewLine +
                             "@POST Data:" + Data + Environment.NewLine +
                             "@Url      :" + Url;

                    Console.Log(_error);

                    Console.Log(jqXhr);

                    errorHandler.Call(null, this);
                }
            });
        }
예제 #3
0
 public void Then(Delegate fulfilledHandler, Delegate errorHandler = null, Delegate progressHandler = null)
 {
     Logger.Debug(GetType(), "Then() starting");
     _impl(
         succ => {
         Logger.Debug(GetType(), "Then _impl invoking successHandler {0}", succ);
         fulfilledHandler?.Call(this, succ);
     },
         err => {
         Logger.Debug(GetType(), "Then _impl invoking errorHandler {0}", err);
         errorHandler?.Call(this, err);
     });
 }
예제 #4
0
        public void Then(Delegate fulfilledHandler, Delegate errorHandler = null, Delegate progressHandler = null)
        {
            var request = new XMLHttpRequest();

            request.onreadystatechange = (ev) =>
            {
                if (request.readyState != 4)
                {
                    return;
                }

                if ((request.status == 200) || (request.status == 304))
                {
                    fulfilledHandler.Call(null, request);
                }
                else
                {
                    errorHandler.Call(null, request.responseText);
                }
            };

            if (!string.IsNullOrWhiteSpace(Options.ContentType))
            {
                request.setRequestHeader("Content-type", Options.ContentType);
            }

            request.open(Options.Method, Options.Url);
            if (Options.Method.ToLower() == "post")
            {
                request.send(Options.Data);
            }
            else
            {
                request.send();
            }
        }