jQuery相对URL不起作用

时间:2014-07-30 15:45:22

标签: java jquery weblogic relative-url

我遇到了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

虽然app确实映射到/ MyApp(这是战争的工件ID)。我可以告诉你,因为像图像和链接这样的静态资源会指向正确的uri。

我现在缺乏选择,因为我们处于紧张状态。我想说,不要使用Weblogic,或者对网址进行硬编码,但这对我来说似乎很苛刻。更重要的是,如果客户端重新定位网络服务器,我们就会遇到麻烦。请帮我搞清楚=(。我想它是Weblogic问题(或者他们的服务器可能没有正确配置),而且我的代码没有问题。所以我意识到你可能无法提供帮助我,但它值得一试吗?提前谢谢!

2 个答案:

答案 0 :(得分:0)

你能为baseURL设置一个变量:

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

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

答案 1 :(得分:0)

这听起来好像你没有在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 docs

中看到一些不错的示例