Xmlhttprequest ja jsonile rakendatud eval näited
Allikas: Lambda
Hulga illustreerivate alertidega näide (vt http://dijkstra.cs.ttu.ee/~tammet/ajax.html ja url, kust datat võetakse: http://dijkstra.cs.ttu.ee/~tammet/cgi-bin/data.py
<html>
<head>
<script>
var request;
function myupdatefun() {
var response;
alert("myupdatefun called with"+request.readyState)
if (request.readyState == 4) {
alert("Server is done, request.readyState == 4!");
if (request.status == 200) {
alert("Server sent data ok,request.status == 200!");
response = request.responseText
alert("response is: "+response)
document.getElementById('sisu2').innerHTML=response;
} else if (request.status == 404)
alert("Request URL does not exist");
else
alert("Error: status code is " + request.status);
}
}
function ajaxcall() {
var url;
request = new XMLHttpRequest();
url = "http://dijkstra.cs.ttu.ee/~tammet/cgi-bin/data.py"
request.open("GET", url, true);
request.onreadystatechange = myupdatefun;
request.send(null);
}
</script>
<body>
Tere kah!
<form>
<input type="button" value="Proovi!" onclick="ajaxcall()">
</form>
<div id="sisu2"></div>
</body>
Ilma alertideta, lisatud json evali calliga näide (vt http://dijkstra.cs.ttu.ee/~tammet/ajax2.html) mis võtab datat urlilt http://dijkstra.cs.ttu.ee/~tammet/cgi-bin/otsi.py
<html>
<head>
<script>
var request;
var url;
var response;
var eresp;
function myupdatefun() {
//alert(request.readyState)
if (request.readyState == 4) {
//alert("Server is done!");
if (request.status == 200) {
//alert("Server sent data ok!");
response = request.responseText
//compres=response;
//alert(response)
eresp=eval(response)
compres="<table>\n"
for (i=0; i<eresp.length; i++) {
//alert(eresp[i])
compres=compres+"<tr>\n"
compres=compres+"<td>"+eresp[i][0]+"</td>"
compres=compres+"<td>"+eresp[i][1]+"</td>"
compres=compres+"<td>"+eresp[i][2]+"</td>"
compres=compres+"</tr>\n"
}
compres=compres+"</table>"
//alert(compres);
document.getElementById('sisu2').innerHTML=compres;
} else if (request.status == 404)
alert("Request URL does not exist");
else
alert("Error: status code is " + request.status);
}
}
function ajaxcall() {
request = new XMLHttpRequest();
url = "http://dijkstra.cs.ttu.ee/~tammet/cgi-bin/otsi.py"
request.open("GET", url, true);
request.onreadystatechange = myupdatefun;
request.send(null);
}
</script>
<body>
Tere kah!<form>
<input type="button" value="otsi!" onclick="ajaxcall()">
</form>
<div id="sisu2"></div>
</body>