1

我在使用 jQuery 时遇到问题。然而奇怪的是它可以在 web 容器上运行,但不能在另一个容器上运行。我的问题是我正在对后端进行 AJAX 调用,但它未能构建正确的 URI(它仅在 Oracle Weblogic 上执行此操作,它已经过测试并且可以在 Tomcat 7 和 Wildfly 上运行)。

所以基本上我的代码看起来像这样:

$.get(
    "api/data/drawing?drawing=1&user=anon",
    {},
    function(data) {
        ...
    });

在 Wildfly 和 Tomcat 上,它会正确调用 URL:

http://192.168.1.100:8080/MyApp/api/data/drawing?drawing=1&user=anon

但在 Weblogic 上,它会调用:

http://192.168.1.100:8080/api/data/drawing?drawing=1&user=anon

虽然该应用程序确实映射到 /MyApp (这是战争的工件 id)。我可以说出来,因为图像和链接等静态资源将指向正确的 uri。

我现在缺乏选择,因为我们正处于紧缩状态。我想说只是不要使用 Weblogic,或者对 URL 进行硬编码,但这对我来说似乎很老套。更重要的是,如果客户端重新定位网络服务器,我们就会遇到麻烦。请帮我解决这个问题=(。我想这是一个Weblogic问题(或者他们的服务器配置不正确),而不是我的代码问题。所以我意识到你可能无法帮助我,但这是值得的一个镜头吧?提前谢谢!

4

2 回答 2

0

您能否为 baseURL 设置一个变量:

var baseUrl = "http://192.168.1.100:8080/MyApp/";

$.get(
 baseUrl + "api/data/drawing?drawing=1&user=anon",
{},
function(data) {
    ...
});
于 2014-07-30T15:56:59.167 回答
0

这听起来像你还没有context-root在 Weblogic 中为你的应用程序设置你的。您需要在 application.xml 或 weblogic.xml 中设置它:

<weblogic-web-app
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.bea.com/ns/weblogic/weblogic-web-app
        http://www.bea.com/ns/weblogic/weblogic-web-app/1.0/weblogic-web-app.xsd"
    xmlns="http://www.bea.com/ns/weblogic/weblogic-web-app">
    <context-root>MyApp</context-root>
</weblogic-web-app>

您可以在Oracle 文档中看到一些很好的示例

于 2014-07-30T16:07:21.440 回答