[AJAX] Traiter la r�ponse d'un JSP avec Javascript
Bonjour,
J'utilise un Service Web qui fournit du code Javascript pour effectuer les requ�tes. Le probl�me que j'ai est que les codes d'acc�s doivent �tre en clair (des cha�nes Javascript pass�es en argument dans l'URL de requ�te).
Je me suis dit alors que je pourrais �crire un jsp (mon serveur est Tomcat) qui se chargerait de la requ�te et contiendrait les codes d'acc�s "cach�s" (c�d. que l'utilisateur final ne peut pas les voir en regardant la source).
Mon probl�me est le suivant : si j'invoque directement mon jsp (dans la barre d'adresse), j'obtiens exactement le m�me output que si j'invoque directement l'URL du webservice mais si je mets l'URL de mon jsp dans le javascript � la place de celle du Service Web, je n'ai aucune r�ponse.
Donc :
- HTML -> appelWS.js avec "http://webservice.com?query=1" -> fonctionne !
- HTML -> appelWS.js avec "https://monserveur.com/appelWS.jsp?query=1" -> appelWS.jsp avec "http://webservice.com?query=1" -> ne fonctionne pas !
(mon jsp
Voici la fonction d'appel javascript:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| function callWebServiceBegin(query) {
var scriptTag = document.getElementById("wsScript");
var headTag = document.getElementsByTagName("head").item(0);
var strUrl = "";
// cette strUrl fonctionne : elle appelle directement le web service
//strUrl = "http://webservice.com?";
//strUrl += "query=" + escape(query);
//strUrl += "&account_code=" + escape("xxxx");
//strUrl += "&license_code=" + escape("yyyy");
//strUrl += "&callback=callWebServiceEnd";
// cette strUrl ne fonctionne pas : elle appelle indirectement le web service
strUrl = "https://monserveur.com/appelWS.jsp?query=1";
strUrl += "query=" + escape(query);
strUrl += "&callback=callWebServiceEnd";
//Make the request
if (scriptTag) {
try {
headTag.removeChild(scriptTag);
}
catch (e) {
//Ignore
}
}
scriptTag = document.createElement("script");
scriptTag.src = strUrl
scriptTag.type = "text/javascript";
scriptTag.id = "wsScript";
headTag.appendChild(scriptTag);
} |
Apr�s, j'ai une fonction "function callWebServiceEnd(response) {..." qui traite la r�ponse. Lorsque je donne mon strUrl, je n'y arrive jamais (dans cette fonction). Est-ce que quelqu'un pourrait m'aider ?
J'ai d�j� pens� � plusieurs solutions, sans v�ritablement trouver de r�ponse :
- Est-ce que le fait que je sois en https change quelque chose ? Je ne pense pas puisque les outputs des URLs entr�es directement sont les m�mes.
- Pourquoi la fonction callback n'est pas appel�e avec mon URL ?
- Est-ce qu'il existe une autre solution pour appeler mon URL, r�cup�rer la r�ponse et la passer "manuellement" � ma fonction callback (sans utiliser une armada lourde, genre servlet, ...) ?
Un grand merci d'avance :-)
J.E.