1
+ /**
2
+ The awesome
3
+ CodeBlue pseudo-cross-browser XHR/AJAX Code Library
4
+
5
+ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
6
+ Version 2, December 2004
7
+
8
+ Copyright (C) 2004 Sam Hocevar <[email protected] >
9
+
10
+ Everyone is permitted to copy and distribute verbatim or modified
11
+ copies of this license document, and changing it is allowed as long
12
+ as the name is changed.
13
+
14
+ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
15
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
16
+
17
+ 0. You just DO WHAT THE FUCK YOU WANT TO.
18
+ */
19
+
20
+ var ajax = {
21
+ /**
22
+ Create a XHR Object.
23
+ IE Compat code removed.
24
+ */
25
+ ajaxRequest :function ( ) {
26
+ if ( window . XMLHttpRequest ) { //every sane browser, ever.
27
+ return new XMLHttpRequest ( ) ;
28
+ }
29
+ else {
30
+ return false ;
31
+ }
32
+ } ,
33
+
34
+ /**
35
+ Make an asynchronous GET request
36
+ Calls /readyfunc/ with the request as parameter upon completion (readyState == 4)
37
+ */
38
+ asyncGet :function ( url , readyfunc , errfunc , user , pass ) {
39
+ var request = new this . ajaxRequest ( ) ;
40
+ request . onreadystatechange =
41
+ function ( ) {
42
+ if ( request . readyState == 4 ) {
43
+ readyfunc ( request ) ;
44
+ }
45
+ } ;
46
+
47
+ request . open ( "GET" , url , true , user , pass ) ;
48
+ try {
49
+ request . send ( null ) ;
50
+ }
51
+ catch ( e ) {
52
+ errfunc ( e ) ;
53
+ }
54
+ return request ;
55
+ } ,
56
+
57
+ /**
58
+ Make an asynchronous POST request
59
+ Calls /readyfunc/ with the request as parameter upon completion (readyState == 4)
60
+
61
+ /payload/ should contain the data to be POSTed in the format specified by contentType,
62
+ by defualt form-urlencoded
63
+
64
+
65
+ */
66
+ asyncPost :function ( url , payload , readyfunc , errfunc , contentType , user , pass ) {
67
+ contentType = contentType || "application/x-www-form-urlencoded" ;
68
+
69
+ var request = new this . ajaxRequest ( ) ;
70
+ request . onreadystatechange =
71
+ function ( ) {
72
+ if ( request . readyState == 4 ) {
73
+ readyfunc ( request ) ;
74
+ }
75
+ } ;
76
+
77
+ request . open ( "POST" , url , true , user , pass ) ;
78
+ request . setRequestHeader ( "Content-type" , contentType ) ;
79
+ try {
80
+ request . send ( payload ) ;
81
+ }
82
+ catch ( e ) {
83
+ errfunc ( e ) ;
84
+ }
85
+ return request ;
86
+ } ,
87
+
88
+ /**
89
+ Perform a synchronous GET request
90
+ This function does not do any error checking, so exceptions might
91
+ be thrown.
92
+ */
93
+ syncGet :function ( url , user , pass ) {
94
+ var request = new this . ajaxRequest ( ) ;
95
+ request . open ( "GET" , url , false , user , pass ) ;
96
+ request . send ( null ) ;
97
+ return request ;
98
+ } ,
99
+
100
+ /**
101
+ Perform a synchronous POST request, with /payload/
102
+ being the data to POST in the specified format (default: form-urlencoded)
103
+ */
104
+ syncPost :function ( url , payload , contentType , user , pass ) {
105
+ contentType = contentType || "application/x-www-form-urlencoded" ;
106
+
107
+ var request = new this . ajaxRequest ( ) ;
108
+ request . open ( "POST" , url , false , user , pass ) ;
109
+ request . setRequestHeader ( "Content-type" , contentType ) ;
110
+ request . send ( payload ) ;
111
+ return request ;
112
+ }
113
+ } ;
0 commit comments