jQuery无法访问java webservice

时间:2013-05-31 18:57:51

标签: java xml node.js jquery

我正在尝试为我们的Web服务编写一个简单的“概念证明”前端。 webservice是一个java webapp,返回在tomcat中运行的简单xml。 前端由简单的html页面和一些jquery函数组成。我正在我的本地机器上开发页面,而webservice在我们的一台服务器上运行。

基本上这就是我的工作:

var url = "http://ourserver.com:51088/service/action/?param=123";
$.get(url,function(data,status) {
    alert("Data: " + data + "\nStatus: " + status);
});

当我将网址放在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)}
});

现在,如果我使用远程网址或本地网址并不重要。两者都在控制台日志中返回xml,但仍未调用success函数。

2 个答案:

答案 0 :(得分:2)

你拼错了“成功”选项。

答案 1 :(得分:0)

在我看来,您的代理服务器无法正常运行。

关于你的第一个问题,在我看来这是跨域请求问题。