0

我正在编写一个简单的 AJAX 代码,以此来学习基础知识并向自己介绍这些概念。以下代码获取位于服务器上的文本文件的内容并传递给一个变量,弹出一个警告框。

我的问题是代码在 Eclipse IDE“使用 Web 浏览器打开”中完美运行,但在其他任何地方都没有。

var http = createRequestObject();
var responseContent;

function createRequestObject() {
   var objAjax;
   var browser = navigator.appName;
   if(browser == "Microsoft Internet Explorer"){
       objAjax = new ActiveXObject("Microsoft.XMLHTTP");
   }else{
       objAjax = new XMLHttpRequest();
   }
   return objAjax;
 }

function getContent(name){
   http.open('get', name);
   http.onreadystatechange = function() {
       if (http.readyState == 4) {
          responseContent = http.responseText;
       }
   };
   http.send(null);
 }   

 $(document).ready(function() {
   getContent('newcontent.txt');
   alert(responseContent);
 });

有谁知道这可能是为什么?代码有问题吗?如果是这样,为什么它在日食中可以正常工作,而在其他地方却不行?

谢谢

4

1 回答 1

0

总结为一个简短的答案:

在函数XHR中发送getContent并附加一个侦听器。

然后,getContent返回并执行警告未定义的变量responseContent

在某个时候 XHR 被回答,readyState更改4和监听器被调用。

只有这样才能responseContent分配变量。

于 2012-11-04T22:45:02.800 回答