URL relativo jQuery non funziona
-
21-12-2019 - |
Domanda
Sto avendo problemi con jQuery. Quello che è strano tuttavia è che funzionerà sul contenitore web, ma non è un altro. Il mio problema è che sto facendo una chiamata Ajax all'estremità posteriore, ma non riesce a costruire l'URI corretto (lo fa su Oracle WebLogic, è stato testato e funziona su Tomcat 7 e Willfly).
Quindi essenzialmente il mio codice sembra questo:
$.get(
"api/data/drawing?drawing=1&user=anon",
{},
function(data) {
...
});
.
su Wildfly e Tomcat chiamerà correttamente l'URL:
http://192.168.1.100:8080/MyApp/api/data/drawing?drawing=1&user=anon
Ma su WebLogic chiamerà:
http://192.168.1.100:8080/api/data/drawing?drawing=1&user=anon
Sebbene l'app sia effettivamente mappata a / myApp (che è l'ID artefatto della guerra). Posso dirlo perché le risorse statiche come immagini e collegamenti indicheranno l'URI corretto.
Sono mancano le opzioni in questo momento perché siamo in un crunch. Mi piacerebbe dire solo non usare il weblogic, o il codice duro, l'URL, ma questo sembra hacky per me. E altro, se il cliente riloca mai il server web, saremmo nei guai. Per favore aiutami a capire questo fuori= (. Immagino che sia un problema weblogic (o forse il loro server non è configurato correttamente) e non un problema con il mio codice. Quindi mi rendo conto che potresti non essere in grado di aiutarmi, ma vale la pena Un colpo giusto? Grazie in anticipo!
Soluzione
Sembra che tu non abbia impostato il context-root
per la tua applicazione in WebLogic.Dovrai impostarlo nella tua applicazione.xml o 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>
.
Puoi vedere un buon esempio qui in Oracle Docs
Altri suggerimenti
Potresti semplicemente impostare una variabile per un baseturl:
var baseUrl = "http://192.168.1.100:8080/MyApp/";
$.get(
baseUrl + "api/data/drawing?drawing=1&user=anon",
{},
function(data) {
...
});
.