Hoi mensen ik heb nu een paar uur loopen googlen maar kom er echt niet uit voor een oplossing.
Ik heb dit test script overgenomen van een website:
ajax pagina
en de post.php
Copy Paste gerust om het zelf uit te testen.
Dit script werkt perfect op IE7, FF, etc. Maar op ie6 duurt het enkele seconden voordat de pagina verandered. Na wat alerts er hebben in gestopt kwam ik erachter dat ie6 er lang overdoet van:
http_request.readyState=3 naar http_request.readyState=4 te gaan.
Aantal dingen die ik misschien over het hoofd heb gezien:
*Verkeerde ActiveXObject.
*Verkeerde header via http_request.setRequestHeader.
Get ipv Post gebruiken is geen optie, omdat het gaat over grote lappen text die ik wil versturen over post, en get een string limit heeft. En het moet echt onder IE6 werken, omdat de opdrachtgever daar onder werkt
Ik heb dit test script overgenomen van een website:
ajax pagina
code:
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
| <script type="text/javascript" language="javascript">
var http_request = false;
function makePOSTRequest(url, parameters) {
http_request = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
// set type accordingly to anticipated content type
//http_request.overrideMimeType('text/xml');
http_request.overrideMimeType('text/html');
}
} else if (window.ActiveXObject) { // IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP.3.0");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request) {
alert('Cannot create XMLHTTP instance');
return false;
}
http_request.open('POST', url, true);
http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http_request.setRequestHeader("Content-length", parameters.length);
http_request.setRequestHeader("Connection", "close");
http_request.send(parameters);
http_request.onreadystatechange = alertContents;
}
function alertContents() {
if (http_request.readyState == 4) {
alert('state=4');
if (http_request.status == 200) {
//alert(http_request.responseText);
result = http_request.responseText;
document.getElementById('myspan').innerHTML = result;
alert('done');
} else {
alert('There was a problem with the request.');
}
}
if(http_request.readyState == 3)
{
alert('state=3');
}
}
function get(obj) {
var poststr = "mytextarea1=" + encodeURI( document.getElementById("mytextarea1").value ) +
"&mytextarea2=" + encodeURI( document.getElementById("mytextarea2").value );
makePOSTRequest('post.php', poststr);
}
</script>
<form action="javascript:get(document.getElementById('myform'));" name="myform" id="myform">
<textarea id="mytextarea1">my test
1
2
3
</textarea>
<textarea id="mytextarea2">my test2
4
5
6</textarea>
<br>
<input type="button" name="button" value="Submit"
onclick="javascript:get(this.parentNode);">
<input type="submit" name="button" value="Normal Submit Button">
</form>
<br><br>
Server-Response:<br>
<hr>
<span name="myspan" id="myspan"></span>
<hr> |
en de post.php
code:
1
2
3
| <? print_r($_POST); ?> |
Copy Paste gerust om het zelf uit te testen.
Dit script werkt perfect op IE7, FF, etc. Maar op ie6 duurt het enkele seconden voordat de pagina verandered. Na wat alerts er hebben in gestopt kwam ik erachter dat ie6 er lang overdoet van:
http_request.readyState=3 naar http_request.readyState=4 te gaan.
Aantal dingen die ik misschien over het hoofd heb gezien:
*Verkeerde ActiveXObject.
*Verkeerde header via http_request.setRequestHeader.
Get ipv Post gebruiken is geen optie, omdat het gaat over grote lappen text die ik wil versturen over post, en get een string limit heeft. En het moet echt onder IE6 werken, omdat de opdrachtgever daar onder werkt
Macbook Pro 15" Late 2013, iPhone 7+ 128gb, iPad Pro, Canon M3, Tamron 18-200, Canon 22 @2.0, Canon 11 -22, Nintendo Switch