簡體   English   中英

jQuery無法訪問Java Web服務

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM