Bonjour,
j'ai fais sur mon site une api en php qui est appelé par des clients en javascript.
Je test pas mal mais api en local, mais j'ai récemment fais un script JS pour tester mes api en prod directement sur mon site.
Dont voici le code :
Le problème est que mon script ne fonctionne pas quand je le fais pointé de api de prod.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 TestU._testRequest = function(url) { var result; var req = new XMLHttpRequest(); req.open('GET', url,false); req.addEventListener('load', function () {result = req.responseText;}); req.send(); return result; } TestU._testRequest("https://www.monsite.com/api.php?value=test"); // j'ai changé l host de l'url, monsite ne sappellant pas vraiment monsite :)
Dans le navigateur j'ai une erreur:
A noter que je teste en local, l'origin est donc 127.0.0.1.Blocage d’une requête multiorigines (Cross-Origin Request) : la politique « Same Origin » ne permet pas de consulter la ressource distante située sur https://www.monsite.com/api.php?value=test. Raison : l’en-tête CORS « Access-Control-Allow-Origin » est manquant.
Mozilla a une page sympa en parlant, mais il ne detaille pas spécialement comment corriger. A priori, je dois faire coté serveur peut etre coté client, mais je ne sais pas quelle ligne mettre.
Note: Mon api est public et ne nécéssite pas de crédentiale.
Merci d'avance pour votre aide sur la résolution de mon probleme.
Note: Ce que je trouve encore plus bizarre est que mon logiciel client qui possède le meme code n'a ce probleme (peut etre car il ,'est pas executé par un navigateur) C'est pas très grave tant que ca marche.
Partager