írtam egy ajaxos lekérdezéses példát, de nem jövök rá miért nem megy
egy async lekérdezés lenne, a lekérdezés elmegy, a válasz vissza is jön, de nem fut le a válasz generálására beállított függvény.
itt lennének a részletek
ez lenne az oldal javascript részlete
<script type="text/javascript">
var client = new HttpClient();
client.isAsync = true;
function test() {
client.callback = function (result) {
document.getElementById('target').innerHTML = result;
}
client.makeRequest('data.php','');
}
</script>
<div id="HttpClientStatus" style="display:none">Loading ...</div>
<a href='javascript:test()'> Do it</a>
<div id="target"></div>
Ez lenne a js
function HttpClient () { }
HttpClient.prototype = {
requestType:'GET',
isAsync:false,
xmlhttp:false,
callback:false,
onSend:function () {
document.getElementById('HttpClientStatus').style.display='block';
},
onLoad:function () {
document.getElementById('HttpClientStatus').style.display='none';
},
onError:function (error) {
alert (error);
},
init:function () {
try {
this.xmlhttp = new XMLHttpRequest ();
} catch (e) {
var XMLHTTP_IDS = new Array ('MSXML2.XMLHTTP.5.0',
'MSXML2.XMLHTTP.4.0',
'MSXML2.XMLHTTP.3.0',
'MSXML2.XMLHTTP',
'Microsoft.XMLHTTP');
var success = false;
for (var i=0;i< XMLHTTP_IDS.length && !success; i++) {
try {
this.xmlhttp = new ActiveXObject(XMLHTTP_IDS[i]);
success = true;
} catch (e) { alert('NO AJAX');}
}
}
},
makeRequest: function (url,payload) {
if (!this.xmlhttp) {
this.init();
}
this.xmlhttp.open(this.requestType,url,this.isAsync);
var self = this;
this.xmlhttp.onReadyStateChange = function () {
alert('oOoOoOoOo');
self._readyStateChangeCallback (self);
}
this.xmlhttp.send(payload);
if (!this.isAsync) {
return this.xmlhttp.responseText;
}
},
_readyStateChangeCallback:function (obj) {
switch (this.xmlhttp.readyState) {
case 2:
this.onSend();
break;
case 4:
this.onLoad();
if (this.xmlhttp.status == 200) {
this.callback(this.xmlhttp.responseText);
}
else {
this.onError('HTTP Error Making Request: '+'[ '+this.xmlhttp.status+']'+' '+this.xmlhttp.statusText);
}
break;
}
}
}
a this.xmlhttp.onReadyStateChange rész nem fut le, mikor esemény változás történik.
valamiért a code tagok közé tett html kód nem látszik