[英]jQuery cannot access java webservice
我正在嘗試為我們的Web服務編寫一個簡單的“概念驗證”前端。 該Web服務是一個Java Web應用程序,它返回在Tomcat中運行的簡單xml。 前端由帶有一些jquery函數的簡單html頁面組成。 當Web服務在我們的一台服務器上運行時,我正在本地計算機上開發頁面。
基本上這就是我要做的:
var url = "http://ourserver.com:51088/service/action/?param=123";
$.get(url,function(data,status) {
alert("Data: " + data + "\nStatus: " + status);
});
將URL放入Firefox地址欄中時,將得到結果xml。
當我運行jquery代碼時,Firebug會顯示生成的xml,但警報永遠不會顯示。
考慮到這可能是跨瀏覽器腳本編寫問題,我編寫了一個小的node.js代理服務器,該服務器將任何localhost:51088 / path傳遞到ourserver.com:51088/path。 所以我將url
var更改為
var url = "http://localhost:51088/service/action/?param=123";
同樣,在瀏覽器中測試此URL會生成xml。 因此,node.js代理服務器運行正常。
現在,當我在Firebug中運行jquery代碼時,我現在始終可以獲取“ Reload the page to get source for: http://localhost:51088/.....
我現在很茫然。
更新:閱讀更多內容后,我將jquery代碼更改為:
$.ajax( {
type: "GET",
contentType: "application/xml",
url: url,
datatype: "text xml",
xhrFields: {
withCredentials: true
},
succes: function(xml) { alert(xml) },
error: function(obj, status, err) { alert ("error\nstatus: " + status + "\nerr: " + err)}
});
現在,無論使用遠程URL還是本地URL都沒有關系。 兩者均在控制台日志中返回xml,但是仍未調用成功函數。
您拼錯了“成功”選項。
在我看來,您的代理無法正常工作。
關於您的第一個問題,在我看來,這是跨域請求問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.