我正在尝试为我们的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函数。
答案 0 :(得分:2)
你拼错了“成功”选项。
答案 1 :(得分:0)
在我看来,您的代理服务器无法正常运行。
关于你的第一个问题,在我看来这是跨域请求问题。