0

以下のスクリプトの問題は何ですか。Here アラート「33here」が来ていますが、json オブジェクトを取得していません。alert(jsontext)ブラウザでこの URL にアクセスすると、JSON オブジェクトが取得されます。

    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が初めてです.これに問題はありますか?

    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);
        }
    }
4

2 に答える 2

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 になると、応答が満たされます。

于 2013-06-03T15:03:05.727 に答える
0

Ajax は非同期で実行されます。.openからのリクエストがいつ完了するか、または完了するかどうかに依存することはできません。ajax リクエストの値に依存するコードはすべて、リクエスト コールバックで実行する必要があります。

xmlHttp.onreadystatechange = function () {
    if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
        alert(xmlHttp.responseText);
    }
}
于 2013-06-03T14:57:22.847 に答える