跨站点 AJAX - 从 Tomcat 服务器请求数据

发布于 2024-11-26 17:45:57 字数 1109 浏览 0 评论 0原文

我有一个问题。我目前有一个 Tomcat 服务器在我的计算机的端口 8080 上侦听,并运行一个 Web 应用程序(可通过 localhost:8080/test-app 访问)。我希望该服务器能够提供动态生成的 XML 文件。它在任何浏览器中都运行良好,它可以完成我想要的事情。

现在,我想在另一台服务器上构建一个网页(我使用 Aptana 的内部服务器,监听端口 8020),这将从第一台服务器获取 XML 文件。 问题是,无论我在 Chrome 还是 FireFox 中尝试,无论我是从 localhost:8020/printxml.html 获取此页面还是直接从我的文件系统(位于 file:///E:/ <...>/printxml.html),我没有收到数据。

这是我用于获取数据的 JavaScript 代码(我使用 jQuery 的 $.ajax() 方法):

function treatResponse(xml) {
    if(xml == "OK")
        // Deal with the data here
    else
        alert("Error during XML generation");
}

function treatError(xhr, ajaxOptions, thrownError) {
    alert("Connection error");
}

function my_login() {

    var props = {
        type : "POST",
        url : "http://localhost:8020/printxml.html",
        success : treatResponse,
        error : treatError
    };

    $.ajax(props);

}

我做错了什么? 我读到应该在服务器端添加特殊标头来通知跨站点请求是可行的(使用Access-Control-Allow-Origin),但我只能'让它发挥作用。

提前致谢 !

I have a problem. I currently have a Tomcat server listening on port 8080 of my machine, with a web app running (accessible at localhost:8080/test-app). I want this server to deliver dynamically-generated XML files. It's running well in any browser, it does what I want and stuff.

Now, I want to build a web page on another server (I use Aptana's internal server, listening on port 8020), which would get XML files from the first server.
The problem is, whether I try in Chrome or FireFox, whether I get this page from localhost:8020/printxml.html OR right from my filesystem (at file:///E:/<...>/printxml.html), I don't receive the data.

Here's my JavaScript code for getting the data (I use jQuery's $.ajax() method) :

function treatResponse(xml) {
    if(xml == "OK")
        // Deal with the data here
    else
        alert("Error during XML generation");
}

function treatError(xhr, ajaxOptions, thrownError) {
    alert("Connection error");
}

function my_login() {

    var props = {
        type : "POST",
        url : "http://localhost:8020/printxml.html",
        success : treatResponse,
        error : treatError
    };

    $.ajax(props);

}

What am I doing wrong ?
I read there should be special headers added server-side to inform that cross-site requests are feasible (using Access-Control-Allow-Origin), but I just can't get it to work.

Thanks in advance !

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

生生漫 2024-12-03 17:45:57

尝试在 localhost 前添加 http://

    url : "http://localhost:8020/printxml.html",

try to add http:// before localhost

    url : "http://localhost:8020/printxml.html",
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文