66 lines
2.2 KiB
JavaScript
66 lines
2.2 KiB
JavaScript
// Copyright (c) 2012 Web Notes Technologies Pvt Ltd (http://erpnext.com)
|
|
//
|
|
// MIT License (MIT)
|
|
//
|
|
// Permission is hereby granted, free of charge, to any person obtaining a
|
|
// copy of this software and associated documentation files (the "Software"),
|
|
// to deal in the Software without restriction, including without limitation
|
|
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
// and/or sell copies of the Software, and to permit persons to whom the
|
|
// Software is furnished to do so, subject to the following conditions:
|
|
//
|
|
// The above copyright notice and this permission notice shall be included in
|
|
// all copies or substantial portions of the Software.
|
|
//
|
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
|
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
|
// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
|
// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
|
|
// CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
|
|
// OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
//
|
|
|
|
wn.xmlhttp = {
|
|
request: function() {
|
|
if ( window.XMLHttpRequest ) // Gecko
|
|
return new XMLHttpRequest() ;
|
|
else if ( window.ActiveXObject ) // IE
|
|
return new ActiveXObject("MsXml2.XmlHttp") ;
|
|
},
|
|
|
|
complete: function(req, callback, url) {
|
|
if (req.status==200 || req.status==304) {
|
|
callback(req.responseText);
|
|
} else {
|
|
alert(url +' request error: ' + req.statusText + ' (' + req.status + ')' ) ;
|
|
}
|
|
},
|
|
|
|
get: function(url, callback, args, async) {
|
|
// async by default
|
|
if(async === null) async=true;
|
|
var req = wn.xmlhttp.request();
|
|
|
|
// for async type
|
|
req.onreadystatechange = function() {
|
|
if (req.readyState==4) {
|
|
wn.xmlhttp.complete(req, callback, url)
|
|
}
|
|
}
|
|
// separator can be & or ?
|
|
// based on if there are already arguments
|
|
var sep = ((args && args.indexOf('?'))==-1) ? '?' : '&';
|
|
|
|
// add arguments to url
|
|
var u = args ? (url + sep + args) : url;
|
|
|
|
// call the server
|
|
req.open('GET', u, async);
|
|
req.send(null);
|
|
|
|
// for sync
|
|
if(!async) {
|
|
wn.xmlhttp.complete(req, callback, url)
|
|
}
|
|
}
|
|
}
|