1

我正在尝试为我们的网络服务编写一个简单的“概念证明”前端。webservice 是一个 java webapp,返回在 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。所以我将urlvar 更改为

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,但仍然没有调用成功函数。

4

2 回答 2

2

您拼错了“成功”选项。

于 2013-05-31T21:38:30.670 回答
0

在我看来,您的代理没有按预期工作。

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

于 2013-05-31T19:10:01.147 回答