2012-05-13 17 views
0

我試圖調用一個RESTful Web服務,其返回JSONObject的字符串格式..the請求被髮送到服務器,但在這裏我沒有得到響應誰能幫助我從Java調用腳本restfulwebservice? 我在Chrome瀏覽器測試..用ajax

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

您是否確定您的服務實際上會返回正確的數據?您可以使用類似[海報](https://addons.mozilla.org/en-US/firefox/addon/poster/)來測試這一點。 – beerbajay

+0

雅當從瀏覽器中顯示它的網址顯示數據.. – Ryada

回答

0

你的意思是「無迴應」是什麼?在responseText的無弦或內部的代碼,如果()從不執行?就個人而言,我將切換send()和xmlhttp.onreadystatechange()的順序,首先定義函數來處理的onreadystatechange,然後發送該請求。

研究的要求,你可以把它打印到控制檯(在onreadystatechange的內部)

console.log(xmlhttp) 

,看看它實際上包含

+0

我越來越在onreaddystatechange xmlhttp.readyState = 4和xmlhttp.status = 0 – Ryada

+0

剛纔我檢查與IE瀏覽器相同的代碼,它的工作,我忘了結果..可能與鉻... thanx答覆的問題 – 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

與這個jQuery代碼嘗試,

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

這樣可以解決不同瀏覽器編寫不同代碼的問題。

注:包括在你的網頁編寫上述腳本之前最新的jquery.js文件。

謝謝