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 <sam@hocevar.net>
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