我写了这个简单的 AJAX 脚本:
var request;
function createRequest(){
request = null;
try{
request = new XMLHttpRequest();
}catch(failed){
request = null;
}
if(request==null){
alert("Incompatible Browser");
}
}
function getProd(form){
createRequest();
var w = form.list.selectedIndex;
var cat = form.list.options[w].text;
var url = "showProd.do?prodCat=" + cat;
request.open("GET",url,false);
//Send request to server
request.onreadyStateChange = updatePage();
request.send(null);
}
function updatePage(){
//if(request.readyState == 4){
//add your code here
var options = "Bloody Server";
options = request.responseText;
//docWrite(options);
alert(options);
//}
}
我使用 firebug 来检查从服务器收到的响应。它绝对没问题,并且类型为“text/html”。
问题是它没有显示在警报框中!
最佳答案
通过编写 request.onreadyStateChange = updatePage()
,您调用 updatePage
函数并将其返回值分配给 onreadyStateChange
(顺便说一下,必须是小写)
您需要将函数本身分配给 onreadystatechange
,而不是通过删除 ()
来调用它。
例如:
request.onreadystatechange = updatePage;
请注意,使用全局 request
变量是一个糟糕的主意;您的代码无法同时发送两个请求。
我强烈建议您使用现有的AJAX框架,例如jQuery's ,相反。
关于javascript - AJAX响应文本没有得到任何东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3284588/