javascript - AJAX响应文本没有得到任何东西

标签 javascript ajax

我写了这个简单的 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/

相关文章:

asp.net - 从 jquery post 调用发送 html 标记到 asp.net 页面时,从客户端检测到潜在危险的 Request.QueryString 值

javascript - jQuery Ajax 成功获取返回的数组长度?

javascript - 这是如何工作的 !function(){console.log ("hi")}()

javascript - 隐藏相关视频 Youtube Iframe API

javascript - IE : jQuery click listener fires on parent of disabled button

javascript - 与一个外键关联序列化

javascript - 为什么 Typescript 编译器在生成的 JavaScript 中省略 'should.js' import ?

jquery - 使用 jQuery 表单插件提交多个表单

javascript - 模糊事件和提交事件?

javascript - Laravel 4 无法从 Angular Ajax 获取数据