作者mozan (想你的原因)
看板Ajax
标题[问题] 关於XMLHttpRequest 和 PHP
时间Mon Jul 23 14:09:31 2007
用如下的程式码
我将他的目标网页从test.html 改成我自己写的 test.php
<span
style="cursor: pointer; text-decoration: underline"
onclick="makeRequest('
test.php')">
Make a request
</span>
test.php 则在资料库中新增一笔资料 以及 一行 OK 的 echo
我直接连结那个php可以成功新增没有问题
可是用XMLHttpRequest却没有成功(应该说是在IE没有成功 可是firefox有)
在IE中有把OK alert出来但是没有在资料库新增
可是firefox有新增资料却没有alert出来
不知道是为什麽
http://wiki.moztw.org/index.php/AJAX_%E4%B8%8A%E6%89%8B%E7%AF%87
<script type="text/javascript" language="javascript">
var http_request = false;
function makeRequest(url) {
http_request = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
http_request.overrideMimeType('text/xml');
}
} else if (window.ActiveXObject) { // IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request) {
alert('Giving up :( Cannot create an XMLHTTP instance');
return false;
}
http_request.onreadystatechange = alertContents;
http_request.open('GET', url, true);
http_request.send(null);
}
function alertContents() {
if (http_request.readyState == 4) {
if (http_request.status == 200) {
alert(http_request.responseText);
} else {
alert('There was a problem with the request.');
}
}
}
</script>
<span
style="cursor: pointer; text-decoration: underline"
onclick="makeRequest('test.html')">
Make a request
</span>
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.123.101.247
※ 编辑: mozan 来自: 140.123.101.247 (07/23 14:10)
1F:推 Kej:IE 有 alert 但没更新可能是 IE 的 cache 的关系,在 test.php 07/23 15:22
2F:→ Kej:後面加个会变的参数试试看,ex: test.php?t=<?=time()?> 07/23 15:23
3F:推 bryanliu:你的意思是直接在网址的URL後面+参数喔 但这样资料库 07/23 15:39
4F:→ bryanliu:还是没有更新 07/23 15:41
5F:推 mozan:不太懂K大的意思 是直接丢一个参数给test.php echo吗? 07/23 15:45
6F:推 averywu:丢你的php程式上来看看 07/23 16:02
7F:推 Kej:IE的XMLHTTP如果用GET Method读取同一个url,只有第一次会真的 07/23 16:01
8F:→ Kej:去request,第二次之後他会看先前已经有request过了,就会直接 07/23 16:03
9F:→ Kej:读cache,所以IE才只会新增一次,但是如果在request的url加上 07/23 16:03
10F:→ Kej:变数,让每次去读的url都不一样的话,就不会有cache的问题 07/23 16:04
11F:→ mlwmlw:楼上一语惊醒 …我之前发生的问题原来这样就能解决阿XD 07/23 18:38