jquery相对网址不起作用
-
21-12-2019 - |
题
我有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) {
...
});
. 不隶属于 StackOverflow