12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- var ajax = {};
- ajax.create = function() {
- if(typeof XMLHttpRequest !== 'undefined') {
- return new XMLHttpRequest();
- };
- var versions = [
- "MSXML2.XmlHttp.6.0",
- "MSXML2.XmlHttp.5.0",
- "MSXML2.XmlHttp.4.0",
- "MSXML2.XmlHttp.3.0",
- "MSXML2.XmlHttp.2.0",
- "Microsoft.XmlHttp"
- ];
- var xhr;
- for(var i = 0; i < versions.length; i++) {
- try {
- xhr = new ActiveXObject(versions[i]);
- break;
- } catch(e) {
- // Silent
- };
- };
- return xhr;
- };
- ajax.send = function(url, callback, method, data, async) {
- if(async === undefined) {
- async = true;
- };
- var a = ajax.create();
- a.open(method, url, async);
- a.onreadystatechange = function() {
- // a.readyState:
- // 0 - UNSENT
- // 1 - OPENED
- // 2 - HEADERS_RECEIVED
- // 3 - LOADING
- // 4 - DONE
- callback(method, data, a.readyState, a.status, a.responseText);
- };
- if(method == 'POST') {
- a.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
- };
- a.send(data);
- };
- ajax.get = function(url, data, callback, async) {
- var query = [];
- for(var key in data) {
- query.push(encodeURIComponent(key) + '=' + encodeURIComponent(data[key]));
- };
- ajax.send(url + (query.length ? '?' + query.join('&') : ''), callback, 'GET', null, async);
- };
- ajax.post = function(url, data, callback, async) {
- var query = [];
- for (var key in data) {
- query.push(encodeURIComponent(key) + '=' + encodeURIComponent(data[key]));
- };
- ajax.send(url, callback, 'POST', query.join('&'), async);
- };
|