ajax request in typescript

Solutions on MaxInterview for ajax request in typescript by the best coders in the world

showing results for - "ajax request in typescript"
Lucia
10 Jun 2016
1  module Ajax {
2    export class Options {
3        url: string;
4        method: string;
5        data: Object;
6        constructor(url: string, method?: string, data?: Object) {
7            this.url = url;
8            this.method = method || "get";
9            this.data = data || {};
10        }
11    }
12
13    export class Service {
14        public request = (options: Options, successCallback: Function, errorCallback?: Function): void => {
15            var that = this;
16            $.ajax({
17                url: options.url,
18                type: options.method,
19                data: options.data,
20                cache: false,
21                success: function (d) {
22                    successCallback(d);
23                },
24                error: function (d) {
25                    if (errorCallback) {
26                        errorCallback(d);
27                        return;
28                    }
29                    var errorTitle = "Error in (" + options.url + ")";
30                    var fullError = JSON.stringify(d);
31                    console.log(errorTitle);
32                    console.log(fullError);
33                    that.showJqueryDialog(fullError, errorTitle);
34                }
35            });
36        }
37        public get = (url: string, successCallback: Function, errorCallback?: Function): void => {
38            this.request(new Options(url), successCallback, errorCallback);
39        }
40        public getWithDataInput = (url: string, data: Object, successCallback: Function, errorCallback?: Function): void => {
41            this.request(new Options(url, "get", data), successCallback, errorCallback);
42        }
43        public post = (url: string, successCallback: Function, errorCallback?: Function): void => {
44            this.request(new Options(url, "post"), successCallback, errorCallback);
45        }
46        public postWithData = (url: string, data: Object, successCallback: Function, errorCallback?: Function): void => {
47            this.request(new Options(url, "post", data), successCallback, errorCallback);
48        }
49
50        public showJqueryDialog = (message: string, title?: string, height?: number): void => {
51            alert(title + "\n" + message);
52            title = title || "Info";
53            height = height || 120;
54            message = message.replace("\r", "").replace("\n", "<br/>");
55            $("<div title='" + title + "'><p>" + message + "</p></div>").dialog({
56                minHeight: height,
57                minWidth: 400,
58                maxHeight: 500,
59                modal: true,
60                buttons: {
61                    Ok: function () { $(this).dialog('close'); }
62                }
63            });
64        }
65    }
66}