Rename directory to better suit the moving time.
Kind of also fix the apache conf, but not quite.
This commit is contained in:
106
old-projects/algo/js/httpobj.js
Normal file
106
old-projects/algo/js/httpobj.js
Normal file
@@ -0,0 +1,106 @@
|
||||
/*
|
||||
This program is free software. It comes without any warranty, to
|
||||
the extent permitted by applicable law. You can redistribute it
|
||||
and/or modify it under the terms of the Do What The Fuck You Want
|
||||
To Public License, Version 2, as published by Sam Hocevar. See
|
||||
http://sam.zoy.org/wtfpl/COPYING for more details.
|
||||
*/
|
||||
|
||||
/*
|
||||
httpobj: javascript class using XMLHttpRequest to send and retrieve info.
|
||||
See /httpobj to get an example of the usage.
|
||||
*/
|
||||
//v.1.0
|
||||
function httpobj() {
|
||||
// Get XMLHttpRequest object
|
||||
this.obj = this.getobj()
|
||||
if (!this.obj) {
|
||||
alert('Your browser does not support HTTP Requests! Get a new one (a browser, that is. Not a request).')
|
||||
delete this
|
||||
return false
|
||||
}
|
||||
|
||||
// Define default variables
|
||||
this.param = {}
|
||||
this.method = 'POST'
|
||||
|
||||
// Fix for later on
|
||||
this.obj.topelem = this
|
||||
}
|
||||
|
||||
httpobj.prototype.getobj = function() {
|
||||
// Try to get the XMLHttpRequest object
|
||||
try { return new XMLHttpRequest() } catch (e) {}
|
||||
try { return new ActiveXObject('Msxml2.XMLHTTP.6.0') } catch(e) {}
|
||||
try { return new ActiveXObject('Msxml2.XMLHTTP.3.0') } catch(e) {}
|
||||
try { return new ActiveXObject('Msxml2.XMLHTTP') } catch(e) {}
|
||||
try { return new ActiveXObject('Microsoft.XMLHTTP') }
|
||||
catch(e) {
|
||||
return false // FAILURE
|
||||
}
|
||||
}
|
||||
|
||||
httpobj.prototype.send = function() {
|
||||
/*
|
||||
send(): Sends parametres (param) to url (url) and sets up function to
|
||||
react on retrievement
|
||||
*/
|
||||
|
||||
if (!this.url) {
|
||||
// Exit function if either url or the function to be called is undefined
|
||||
delete this
|
||||
return false
|
||||
}
|
||||
|
||||
// Transform param into string type ?foo=bar&hmm=aha
|
||||
this.text_params = ''
|
||||
if (this.param) {
|
||||
for (var x in this.param)
|
||||
this.text_params += '&' + x + '=' + this.param[x]
|
||||
this.text_params = this.text_params.substr(1)
|
||||
}
|
||||
|
||||
if (this.method.toLowerCase() == 'get') {
|
||||
// In case of GET method, use '?'
|
||||
var after_url
|
||||
if (!this.param)
|
||||
after_url = ''
|
||||
else
|
||||
after_url = '?' + this.text_params
|
||||
|
||||
this.obj.open('GET', this.url + after_url, true)
|
||||
this.obj.send(null)
|
||||
}
|
||||
else {
|
||||
// In case of POST method, use RequestHeader
|
||||
this.obj.open('POST', this.url, true)
|
||||
this.obj.setRequestHeader('Content-type', 'application/x-www-form-urlencoded')
|
||||
this.obj.setRequestHeader('Content-length', this.text_params.length)
|
||||
this.obj.setRequestHeader('Connection', 'close')
|
||||
this.obj.send(this.text_params)
|
||||
}
|
||||
|
||||
// What to do when something happens
|
||||
this.obj.onreadystatechange = function() {
|
||||
// Only do something when it's complete
|
||||
if (this.readyState == 4 || this.readyState == 'complete') {
|
||||
// Define 3 variables to be used with the user-defined function (func)
|
||||
var text, params, state
|
||||
text = this.responseText
|
||||
params = this.topelem.param // this.topelem = this.obj.topelem = this
|
||||
|
||||
// State 0 is good, state 1 is bad
|
||||
state = 0
|
||||
if (this.status != 200) {
|
||||
state = 1
|
||||
text = ''
|
||||
}
|
||||
|
||||
// Call user-defined function
|
||||
if (this.topelem.func)
|
||||
eval(this.topelem.func)
|
||||
delete this
|
||||
}
|
||||
}
|
||||
return true // It has a chance of working..
|
||||
}
|
||||
Reference in New Issue
Block a user