我有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,或者硬代码网址,但这似乎是对我的言话。而且,如果客户重新安置Web服务器,我们会遇到麻烦。请帮助我解决这个问题=(。我想象它是一个weblogic问题(或者他们的服务器没有正确配置),而不是我的代码的问题。所以我意识到你可能无法帮助我,但值得射门吧?提前谢谢!

有帮助吗?

解决方案

这听起来像您在WebLogic中尚未为您的应用程序设置您的context-root。您需要在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文档

其他提示

您可以为BaseURL设置一个变量:

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top