J'ai ecris un script qui me permet de consommer un service web.
Ce service est installé sur un serveur. Le portail est également installé sur le ce serveur. donc le problème de la consommation du service sur un autre domaine ne se pose pas. Je n'ai donc pas besoin d'un proxy.
sur le portail, l'evenement qui déclenche la conso du service web est le clic sur un bouton.
Quand je teste sur mon poste de dev, tout marche.
par contre, une fois le tout déployé sur le serveur, quand je clique sur le bouton, il me renvoie l'erreur : "permission refusée" et comme textResponse : undefined. et quelques fois, mon readystate = 2.
Le service web marche bien sur le serveur mais l'appel depuis le portail est impossible.
Pourriez-vous m'aider s'il vous plait ? merci.
Voici mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123 var xhr; function MaFonction() { document.getElementById('monBouton').disabled = true; try { var code = window.document.getElementsByName("codePDV" )[0].value; var xmlToSend = "<?xml version='1.0' encoding='utf-8'?>"; xmlToSend += "<soap:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' "; xmlToSend += "xmlns:xsd='http://www.w3.org/2001/XMLSchema' "; xmlToSend += "xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'>"; xmlToSend += " <soap:Body>"; xmlToSend += " <maFonctionWS xmlns='http://tempuri.org/'>"; xmlToSend += " <codePDV>"+ code +"</codePDV>"; xmlToSend += " <majDonneesClient>true</majDonneesClient>"; xmlToSend += " </maFonctionWS>"; xmlToSend += " </soap:Body>"; xmlToSend += "</soap:Envelope>"; xhr = getXMLHttpRequest(); xhr.onreadystatechange=function() { switch(xhr.readyState) { case 0: window.document.getElementById('lblResultWS').innerHTML = " Erreur de connexion au serveur."; window.document.getElementById('lblResultWS').innerHTML +=" Réponse du serveur : " + xhr.responseText; document.getElementById('monBouton').disabled = false; break; case 1: window.document.getElementById('lblResultWS').innerHTML = " Ouverture de la communication..."; window.document.getElementById('lblResultWS').innerHTML +=" Réponse du serveur : " + xhr.responseText; document.getElementById('monBouton').disabled = false; break; case 2: window.document.getElementById('lblResultWS').innerHTML =" Envoi de la requête..."; window.document.getElementById('lblResultWS').innerHTML +=" Réponse du serveur : " + xhr.responseText; document.getElementById('monBouton').disabled = false; break; case 3: window.document.getElementById('lblResultWS').innerHTML = " Réception des données..."; window.document.getElementById('lblResultWS').innerHTML +=" Réponse du serveur : " + xhr.responseText; document.getElementById('monBouton').disabled = false; break; case 4: if (xhr.status==200) { window.document.getElementById('lblResultWS').innerHTML = "Connexion établie"; window.location.replace("index.php?option=rechargerlapage"); } else if (xhr.status==404) { window.document.getElementById('lblResultWS').innerHTML = "Connexion impossible. hôte introuvable."; window.location.replace("index.php?option=rechargerlapage"); } else if(xhr.status == 403) { window.document.getElementById('lblResultWS').innerHTML = "Connexion impossible. Permission refusée !"; window.location.replace("index.php?option=rechargerlapage"); } if(xhr.responseText == "true") { window.document.getElementById('lblResultWS').innerHTML = "service effectuée avec succès."; window.location.replace("index.php?option=rechargerlapage"); } else if(xhr.responseText == "false") { window.document.getElementById('lblResultWS').innerHTML = "Le web service a échoué."; window.location.replace("index.php?option=rechargerlapage"); } break; } }; if(xhr) { var async = true; xhr.open("POST", "http://127.0.0.1:81/monWebService.asmx", async); xhr.setRequestHeader("SOAPAction", "http://tempuri.org/maFonctionWS"); xhr.setRequestHeader("Content-type", "text/xml"); xhr.setRequestHeader("Content-Length", xmlToSend.length); xhr.setRequestHeader("Cache-Control", "no-cache"); xhr.send(xmlToSend); } } catch(err) { window.document.getElementById('lblResultWS').innerHTML = "Impossible de se connecter au serveur. Erreur : " + err.message; document.getElementById('monBouton').disabled = false; } } function getXMLHttpRequest() { if(window.XMLHttpRequest) { // Firefox et autres xhr = new XMLHttpRequest(); } else if(window.ActiveXObject) { // Internet Explorer try { xhr = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e1) { xhr = null; } } } else { // XMLHttpRequest non supporté par le navigateur alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); } return xhr; }
Partager