我正在编写一个简单的 ajax 函数:
1 function setXMLHttpRequest() {
2 var xhr = null;
3 if (window.XMLHttpRequest) {
4 xhr = new XMLHttpRequest();
5 }
6 else if (window.ActiveXObject) {
7 xhr = new ActiveXObject("Microsoft.XMLHTTP");
8 }
9 return xhr;
10 }
11
12
13 var xhrObj = setXMLHttpRequest();
14 function get_commenti(id)
15 {
16 var url = "get_commenti.php?id="+id;
17 xhrObj.open("GET", url, false);
18 xhrObj.onreadystatechange = add_commenti(id);
19 xhrObj.send(null);
20 }
21
22 function add_commenti(id)
23 {
24 if(xhrObj.readyState == 4)
25 {
26 var id_div = "commento_"+id;
27 document.getElementById(id_div).innerHTML += xhrObj.responseText;
28 }
29 alert(xhrObj.readyState);
30 }
问题是第 29 行警告的 readystatechange 始终为 1 而从不为 4。如果我使用浏览器访问页面 <"get_commenti.php?id="+id> 它会按预期打印结果(我也尝试放置绝对路径)。
我已经尝试查找问题,但现在似乎每个人都在使用 jQuery 而我还没有。
值得注意的是,我在自己的 Web 服务器上运行它,所以可能是因为我配置了一些东西?
谢谢!