繁体   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