2012-05-13 16 views
0

jsonobjectを文字列形式で返す安らかなWebサービスを呼び出そうとしています。要求はサーバーに送信されますが、ここでは誰も私を助けることができません。 私はあなたが「応答なし」とはどういう意味ajaxを使用してJavaスクリプトからrestfulwebserviceを呼び出す

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; 
     } 
} 
+1

サービスが実際に正しいデータを返すようにしましたか? [Poster](https://addons.mozilla.org/en-US/firefox/addon/poster/)のようなものを使ってこれをテストすることができます。 – beerbajay

+0

yaブラウザからデータを表示しているブラウザからヒットすると.. – Ryada

答えて

0

.. Chromeブラウザでテストするのですか? responseTextに文字列がないか、またはif()内のコードが実行されることはありませんか?個人的には、send()とxmlhttp.onreadystatechange()の順番を入れ替え、まずonreadystatechangeを処理する関数を定義してからリクエストを送信します。

は、あなたが(onreadystatechangeに内部で)コンソールにそれを印刷することができ

console.log(xmlhttp) 

が、それは実際に

+0

私はonreaddystatechange xmlhttp.readyState = 4とxmlhttp.status = 0になっています。 – Ryada

+0

今はIEと同じコードをチェックしています。クロムに問題がある... ... – Ryada

0

最初の「onreadystatechangeに」を割り当てることをお勧めし何を含むか確認するために、要求を調査するために、ハンドラを呼び出し、 'send'メソッドを呼び出すだけです。それ以外の場合は、要求を処理する前に要求が実行されます。

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のようなライブラリを使用することを検討してください。

0

これは別のブラウザごとに異なるコードを書くの問題を解決することができる

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

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

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

ありがとうございました

関連する問題