javascript:JSON obj没有来

时间:2013-06-03 14:54:10

标签: javascript ajax

下面的脚本有什么问题。这里有警报“33here”即将到来,但我没有得到我的json对象。alert(jsontext)即将出现空白。如果我在浏览器中点击此URL,那么我将获得JSON对象。< / p>

    xmlHttp = new XMLHttpRequest();
    xmlHttp.overrideMimeType("application/json");  
    alert('11here');
    xmlHttp.open( "GET", "http://<hostname>/appsuite/api/login", true );
    alert('22here');
    alert(xmlHttp);
    xmlHttp.send();
    alert('33here');
    var jsontext= xmlHttp.responseText;

    alert(jsontext);

按照建议尝试但没有工作。我是javascript / ajax.Any中的新问题吗?

    xmlHttp = new XMLHttpRequest();
    xmlHttp.overrideMimeType("application/json");  
    alert('Hi 11here');
    xmlHttp.open( "GET", "http://<hostname>/appsuite/api/login", true );
    alert('Hi 22here');
    alert(xmlHttp);
    xmlHttp.send();
    alert('Hi 33here');
    xmlHttp.onreadystatechange = function () {
    if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
        alert(xmlHttp.responseText);
        }
    }

2 个答案:

答案 0 :(得分:0)

Ajax以异步方式运行 。您无法完全依赖.open的请求何时完成,甚至 它将完成。依赖于ajax请求的值的任何代码必须在请求回调中完成。

xmlHttp.onreadystatechange = function () {
    if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
        alert(xmlHttp.responseText);
    }
}

答案 1 :(得分:0)

开始的好地方是查看MDN提供的示例:https://developer.mozilla.org/en-US/docs/AJAX/Getting_Started

function alertContents(httpRequest) {
  try {
    if (httpRequest.readyState === 4) {
     if (httpRequest.status === 200) {
        alert(httpRequest.responseText);
     } else {
        alert('There was a problem with the request.');
      }
    }
  }
   catch( e ) {
     alert('Caught Exception: ' + e.description);
  }
}

请求状态达到200且就绪状态为4后,响应将被填满。