0

jsonobject を文字列形式で返す安らかな Web サービスを呼び出そうとしています。リクエストはサーバーに送信されますが、ここで応答が得られません。私はクロムブラウザでテストしています..

 xmlhttp=new XMLHttpRequest();
 var url = "http://localhost:8080/DataWeb/rest/datastore/getData";
 xmlhttp.open("GET",url,true);
 xmlhttp.send();
 var res=xmlhttp.responseText;
 xmlhttp.onreadystatechange=function() {
      if (xmlhttp.readyState==4 && xmlhttp.status==200) {
           document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
      } else {
           document.getElementById("myDiv").innerHTML=xmlhttp.readyState +","+ xmlhttp.status;
      }
 }
4

4 に答える 4

0

このjqueryコードで試してください、

 $.ajax({
  type: 'GET',
  url: "http://localhost:8080/DataWeb/rest/datastore/getData",
  dataType: "xml",
  success: function(xml){
    $("#myDiv").html(xml);
  }   
});

これにより、ブラウザごとに異なるコードを記述する問題が解決する場合があります。

注:上記のスクリプトをページに書き込む前に、最新のjquery.jsファイルを含めてください。

ありがとう

于 2012-05-13T14:03:21.197 に答える
0

コードを次のように変更します。

var xmlhttp=new XMLHttpRequest();
var url = "http://localhost:8080/DataWeb/rest/datastore/getData";
xmlhttp.onreadystatechange=function() {
    if (xmlhttp.readyState==4 && xmlhttp.status==200) {
        document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    } else {
        document.getElementById("myDiv").innerHTML=xmlhttp.readyState +","+ xmlhttp.status;
    }
}
xmlhttp.open("GET",url);
xmlhttp.send();

また、jQuery などのライブラリーの使用を検討してください。そうすれば、このボイラープレート・コーディングをすべて処理する必要がなくなります。

于 2012-05-13T09:38:31.513 に答える
0

「無反応」とは?responseText に文字列がないか、if() 内のコードが実行されない? 個人的には、send() と xmlhttp.onreadystatechange() の順序を入れ替えて、最初に onreadystatechange を処理する関数を定義してからリクエストを送信します。

リクエストを調査するために、コンソールに出力できます (onreadystatechange 内)。

console.log(xmlhttp)

実際に何が含まれているかを確認する

于 2012-05-13T07:46:12.780 に答える
0

最初に「onreadystatechange」ハンドラを割り当ててから、「send」メソッドを呼び出すことをお勧めします。それ以外の場合は、リクエストを処理する前にリクエストが実行されます。

于 2012-05-13T07:49:31.107 に答える