Ik heb een stukje javascript geschreven wat XML files leest door te POSTen of GETten naar een webserver. Heel simpel eigenlijk....
Het werkt zolang ik een kant-en-klaar xml file in de testsite hang en die lees. Krijg ik dezelfde response van de webserver werkt het niet. Geen foutmeldingen te bekennen als ik hem debug in VS, de tekstinhoud van de response ziet er ook goed uit (alleen geen enters er in, terwijl dat blokjes zijn in mijn handmatig gemaakte xml), maar de responseXML blijft leeg.
Dit is het stukje code:
Dus als ik tijdens het debuggen de letterlijke tekst van de response pak (dus ook zonder de enters), die in een tekstfile.xml plak en in de site plaats en die aanroep werkt het dus wel!
Het werkt zolang ik een kant-en-klaar xml file in de testsite hang en die lees. Krijg ik dezelfde response van de webserver werkt het niet. Geen foutmeldingen te bekennen als ik hem debug in VS, de tekstinhoud van de response ziet er ook goed uit (alleen geen enters er in, terwijl dat blokjes zijn in mijn handmatig gemaakte xml), maar de responseXML blijft leeg.
Dit is het stukje code:
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
| XML.AjaxObject = function(url, params, method, returnFunction) { var req; var returnFunction = returnFunction; var params = params; var url = url; var method = method; loadXMLDoc(); function loadXMLDoc() { req = false; // branch for native XMLHttpRequest object if(window.XMLHttpRequest && !(window.ActiveXObject)) { try { req = new XMLHttpRequest(); } catch(e) { req = false; } // branch for IE/Windows ActiveX version } else if(window.ActiveXObject) { try { req = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { try { req = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) { req = false; } } } if(req) { req.onreadystatechange = processReqChange; var sendString = ""; if (method == "GET") { var glue = ""; for (var i = 0; i < params.count; i++) { sendString += glue + params[i][0] + "=" + params[i][1]; glue = "&"; } url += "?" + sendString; sendString = ""; } else { sendString = params; } req.open(method, url, true); req.setRequestHeader("Content-Type", "text/xml;charset=utf-8"); // This header is a required part of the SOAP protocol req.setRequestHeader("SOAPAction", '"localhost/GetEmployeeWeekInfo"'); req.send(sendString); } } function processReqChange() { // only if req shows "loaded" if (req.readyState == 4) { // only if "OK" if (req.status == 200 || req.status == 0) { returnFunction(req.responseXML); } else { alert("There was a problem retrieving the XML data:\n" + req.statusText); } } } } |
Dus als ik tijdens het debuggen de letterlijke tekst van de response pak (dus ook zonder de enters), die in een tekstfile.xml plak en in de site plaats en die aanroep werkt het dus wel!
iOS developer