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