我已經實現了一個Jersey web服務,並且我想使用JQuery來訪問它。 看來,ajax()方法是我需要的。使用jQuery ajax訪問POST webservice
我按照找到的建議here,但我不斷收到錯誤,我不知道下一步該怎麼做。警告中出現的錯誤是[對象對象]
我已經使用Java客戶端和下面的curl命令測試了我的Web服務,並且在這兩種情況下它都返回了我所期望的(實際上服務只是修改了對象的屬性之一,並返回它,因爲我只是測試通信問題)
[email protected]:~/tools$ echo $DATA
--data-binary {"endpoint":"endpoint","instance":null,"id":"idcube","schema":null}
[email protected]:~/tools$ echo $HEADER
--header Content-Type:application/json
[email protected]:~/tools$ echo $URL
http://localhost:8888/rest/cubes/get
[email protected]:~/tools$ curl ${DATA} ${HEADER} ${URL}
這裏是我的html頁面:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>QBplus: OLAP cubes in RDF</title>
<link rel="stylesheet" type="text/css" href="css/style.css" />
<script src="js/jquery-1.7.2.min.js" type="text/javascript"></script>
<script src="js/i18n/grid.locale-en.js" type="text/javascript"></script>
<script src="js/jquery.jqGrid.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
var baseURL = "http://localhost:8888/rest/cubes/get";
var postData ={id:'cube1', endpoint:'myendpoint',schema:'a schema',instance:'some instance'};
var pdataJSON=JSON.stringify(postData);
$.ajax({
type:'POST',
url: baseURL,
data:pdataJSON,
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (responseText) {
alert(responseText.d);
},
error: function (error) {
alert(error);
}
});
});//ready
</script>
</head>
<body>
<h1>CUBES</h1>
<div id="cubes"></div>
</body>
任何幫助,將不勝感激!
問候,
洛雷娜
顯然jQuery的字符串化給出像一些瀏覽器問題IE7。也許你根本不需要使用它。 – Stefan 2012-07-12 11:12:56
'pdataJSON'未初始化。 – 2012-07-12 11:14:44
「但我不斷收到錯誤,我不知道下一步該怎麼做」 你會得到什麼錯誤?發佈一些細節! – Anders 2012-07-12 11:22:22