Ik ben bezig met een javascriptje dat onder andere een array met producten nodig heeft om te werken. Deze array wil ik van de server halen mbv het XMLHttpRequest object:
Op de server ziet products.php er zo uit:
Ik verwachtte dat de alert(http.responseText) de string "['appels', 'peren', 'bananen', 'kersen']" zou opleveren. Dat gebeurt niet: in de alertbox verschijnt mijn complete javascript. Wat doe ik (aan de serverkant waarschijnlijk) verkeerd?
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| var http = createRequestObject(); function createRequestObject() { if (window.XMLHttpRequest) { ro = new XMLHttpRequest(); } else if (window.ActiveXObject) { ro = new ActiveXObject("Microsoft.XMLHTTP"); } else { ro = false; } return ro; } function sendRequest(url) { http.open('get', url); http.onreadystatechange = handleResponse; http.send(null); } function handleResponse() { if (http.readyState == 4 && http.status == 200) { alert(http.responseText); } } function init() { sendRequest('http://localhost/test/products.php?id=1'); } |
Op de server ziet products.php er zo uit:
PHP:
1
2
3
4
5
6
7
8
9
10
| $products = $_GET['id']; switch ($products) { case 1: echo "['appels', 'peren', 'bananen', 'kersen']"; break; case 2: echo "['koeken', 'broden', 'taarten']"; break; } |
Ik verwachtte dat de alert(http.responseText) de string "['appels', 'peren', 'bananen', 'kersen']" zou opleveren. Dat gebeurt niet: in de alertbox verschijnt mijn complete javascript. Wat doe ik (aan de serverkant waarschijnlijk) verkeerd?
"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."