2014-01-28 61 views
0

我正在學習jQuery和REST web服務。下面的代碼返回我使用rest jersey創建的其餘webservice的HTML響應。jQuery AJAX請求獲取HTML不起作用

@Path("/hello") 
public class HelloWorldService { 
    @GET 
    @Produces("text/html") 
    public String getClichedMessage() { 
     return "<h1>Hello Jersey</h1>"; 
    } 
} 

當我打的網址在瀏覽器中它給了我下面的結果如預期:

你好新澤西

現在,我要消耗相同的HTML響應我jquery,但我沒有得到預期的結果。 該警報顯示我錯誤狀態。請參閱jquery代碼,請幫我解決。

<!DOCTYPE html> 
    <html> 
<head> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"> 
</script> 
<script> 
$(document).ready(function(){ 
    $("button").click(function(){ 
    $.ajax({ 
    type: "GET", 
    url:"http://localhost:8080/RestTest/rest/hello/", 
    success:function(result){ 
     $("#div1").html(result); 
    }, 
    dataType:"html", 
    error:function(request,status,exception) { 
     alert(status); 
    }, 
    complete:function(request,status) {alert("CALL Complete>>>>>>>>>>>>> "+status)} 
    }); 
    }); 
    }); 
</script> 
</head> 
<body> 

<div id="div1"><h2>Let jQuery AJAX Change This Text</h2></div> 
<button>Get External Content</button> 

</body> 
</html> 
+0

什麼是從服務器的實際響應?什麼是錯誤? – David

+0

'error'處理程序中的'exception'將至少包含服務器錯誤消息的一部分。輸出以及你的警報。它可能會給你一個更好的想法,而不僅僅是狀態碼。 –

+0

謝謝馬克的快速回復。我提醒它的例外,它顯示「沒有運輸」 – Ashu

回答

0

很有可能您所調用的URL不正確。

您的網址以rest/hello/結尾最後/使這個不同的網址到rest/hello,因此路線不會被找到。

嘗試將您的網址更改爲:RestTest/rest/hello - 或您網頁的等效相對網址,只需切掉尾部/即可。

另外 - 是否與網站位於同一域的其餘服務? I.E是您的網站位於​​?如果沒有,它可能是一個跨域問題 - 很難說不知道完整的錯誤信息。

+0

我更改爲RestTest/rest/hello並進行了測試,但沒有成功同樣的錯誤。 – Ashu

+0

和域?你是否從你的url中刪除了'http:// localhost:8080 /'? - 確保您使用的URL與您正在運行的頁面相關。 - 嘗試'/ RestTest/rest/hello' - 不知道你的服務上有什麼'@ path'屬性 - 路由是什麼?那麼url應該是'/ hello'? – Darren

+0

我正在tomcat6.0中運行webservice項目,我的html文件在這個項目之外。 – Ashu

0

如果您希望強制crossDomain請求(例如JSONP)在同一個域上,請將crossDomain的值設置爲true。

Read This

$(document).ready(function(){ 
    $("button").click(function(){ 
    $.ajax({ 
    type: "GET", 
    url:"http://localhost:8080/RestTest/rest/hello/", 
    crossDomain: true, 
    success:function(result){ 
     $("#div1").html(result); 
    }, 
    dataType:"html", 
    error:function(request,status,exception) { 
     alert(status); 
    }, 
    complete:function(request,status) {alert("CALL Complete>>>>>>>>>>>>> "+status)} 
    }); 
    }); 
    }); 
+0

你好Suraj,感謝您的幫助。我會按照你的建議去嘗試。 – Ashu