PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WEBDEV (earlier versions) → Problème d'utilisateur Rest requête de webdev25 en javascript
Problème d'utilisateur Rest requête de webdev25 en javascript
Started by Nenon Aziz Joel TOUR, Jan., 26 2024 5:07 PM - No answer
Registered member
32 messages
Posted on January, 26 2024 - 5:07 PM
Bonjour,
En gros voici la cause du problème.

L'erreur que vous rencontrez est due à la politique de sécurité CORS (Cross-Origin Resource Sharing) mise en place par les navigateurs web. Cette politique limite les requêtes HTTP entre différentes origines (domaines, protocoles et ports) par défaut, afin de renforcer la sécurité en empêchant les sites web malveillants d'accéder aux ressources d'autres sites sans autorisation.

Dans votre cas, vous essayez d'effectuer une requête depuis un domaine (origin) "null" vers le domaine "http://localhost:8025". Cela est considéré comme une requête cross-origin, car l'origine "null" est utilisée lors du chargement de fichiers locaux (via le système de fichiers local ou des fichiers statiques locaux) sans être servi par un serveur HTTP.

La requête cross-origin déclenche une pré-requête (preflight request) OPTIONS avant la requête principale (POST dans votre cas). La pré-requête OPTIONS est effectuée par le navigateur pour vérifier si le serveur autorise la requête principale. Si le serveur ne renvoie pas les en-têtes CORS appropriés dans la réponse à la pré-requête OPTIONS, le navigateur bloque la requête principale, ce qui conduit à l'erreur que vous avez mentionnée.

Pour résoudre cette erreur, vous devez configurer le serveur pour inclure les en-têtes CORS appropriés, en particulier l'en-tête Access-Control-Allow-Origin, qui spécifie les domaines autorisés à accéder aux ressources du serveur. L'utilisation du middleware CORS côté serveur (comme dans l'exemple précédent avec le paquet cors en Node.js) permet de gérer ces en-têtes correctement et d'autoriser les requêtes depuis le domaine du client.



Voici le code windev pour lancer la requête
oRequête est une httpRequête
oRéponse est une httpRéponse

oRequête..URL = "http://localhost:8025/MessageMail"
oRequête..Méthode = httpPost

oRequête..ContentType = "application/json"

// Contenu de la requête
oRequête..Contenu = [
Mail teste
]

// Exécute la requête et récupère la réponse
oRéponse = HTTPEnvoie(oRequête)


code en js
<script>
const url = 'http://localhost:8025/MessageMail';
const Data = ['Mail teste'];

fetch(url, {
method: 'Post',
headers: {
'Content-Type': 'application/JSON',
},
body: JSON.stringify(Data),
})
.then(response => response.json())
.then(Data => {
console.log('Réponse du serveur:', Data);
})
.catch(Error => {
console.error('Erreur lors de la requête:', error.message);
});

</script>


--
Merci de me soutenir.
Message modified, January, 26 2024 - 5:07 PM