jQuery不能访问java web服务
我正在尝试为我们的web服务编写一个简单的“概念validation”前端。 webservice是一个返回在tomcat中运行的简单xml的java webapp。 前端由一些简单的HTML页面和一些jQuery的function组成。 我在我的本地机器上开发页面,而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代理服务器,通过任何本地主机:51088 /pathourserver.com:51088/path。 所以我改变了url
var
var url = "http://localhost:51088/service/action/?param=123";
同样,在浏览器中testing这个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,但成功函数仍未调用。
你拼错了“成功”选项。
在我看来,你的代理并不像你期望的那样工作。
至于你的第一个问题,在我看来,这是跨域请求问题。