Ajax: Pb de réception

Pour toutes les discussions javascript, jQuery et autres frameworks
Répondre
yakafautcon
Messages : 2
Enregistré le : 17 nov. 2024, 17:36

Ajax: Pb de réception

Message par yakafautcon » 17 nov. 2024, 17:50

Bonjour
Sur une page html j'ai un script Ajax.
En mode localhost la requête aboutit et la réponse est OK
En mode localhost en interrogeant le serveur distant la requête aboutit mais la réponse est vide. Si j'interroge le serveur via la requête la réponse est ok
Sur la page déployée sur Wordpress (snippet) même problème

requête->https://localhost/marche/include/progra ... do&ville=0
Une idée ? merci

Code : Tout sélectionner

<script>

<!-- pilotage Ajax -->

var include = \''.$urlajax.'\';
var maj = (\''.$maj.'\').split(\',\');

color = ["","red","blue","green","purple","orange","darkred","lightred","darkblue","darkgreen","cadetblue","darkpurple","lightblue","lightgreen","gray","black","lightgray"];

function piloteajax(t){

//liste des villes	
if(t == 1){	   
	ajaxFunction(include+"?rep=rando&ville=0",t);
	newwin = window.open(include+"?rep=rando&ville=0","width=700,height=700,top=100,left=100,location=false,status=false,toolbar=false,menubar=false");}

//liste des GPX et point de rdv
if(t > 1){
	ville = document.getElementById("ville").value;
	ajaxFunction(include+"?rep=rando&ville="+ville,t);}
}

<!-- Ajax fct a appeler -->
function ajaxFunction(urlpilote,t){
var ajaxRequest;
try {
     // Opera 8.0+, Firefox, Safari
    ajaxRequest = new XMLHttpRequest();
     }catch (e) {
    // Internet Explorer Browsers
    try {
        ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
        }catch (e) {
        try{
            ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
            }catch (e){
            // Something went wrong
            alert("Pas de réponse du serveur!");
            return false;
            }
        }
    }
// fonction qui recevra la réponse et mise à jour
ajaxRequest.onreadystatechange = function(){
    if(ajaxRequest.readyState == 4){
		donnee = ajaxRequest.responseText;
		alert(donnee);
		if(t==1){
			var ajaxDisplay = document.getElementById("ville");
			ajaxDisplay.innerHTML = donnee;
			if(maj.length>1){majville();}
			}
		if(t==2){
			donnee = donnee.split("|");
			var ajaxDisplay = document.getElementById("gpx_1");
			ajaxDisplay.innerHTML = donnee[0];
			var ajaxDisplay = document.getElementById("gpx_2");
			ajaxDisplay.innerHTML = donnee[0];
			var ajaxDisplay = document.getElementById("gpx_3");
			ajaxDisplay.innerHTML = donnee[0];
			var ajaxDisplay = document.getElementById("rdv");
			ajaxDisplay.value = \'lat=\'+donnee[1].split(\',\')[0]+\'&lng=\'+donnee[1].split(\',\')[1];
			if(maj.length>1){majgpx();}
		
			}
		if(t==3){
			donnee = donnee.split("|");
			var ajaxDisplay = document.getElementById("rdv");
			ajaxDisplay.value = \'lat=\'+donnee[1].split(\',\')[0]+\'&lng=\'+donnee[1].split(\',\')[1];
			}	
         }
    }
               
// récupération des valeurs envoyées en GET au serveur

	ajaxRequest.open("GET", urlpilote , true);
	ajaxRequest.send(null);

//fin -->	
}

yakafautcon
Messages : 2
Enregistré le : 17 nov. 2024, 17:36

Re: Ajax: Pb de réception

Message par yakafautcon » 17 nov. 2024, 20:28

Après moult recherches, c'est un pb de serveur qui refuse ce type de requête. La solution est de modifier le COR du serveur via AWS CLI mais là je suis un peu dépassé.

borrowdelay
Messages : 1
Enregistré le : 11 déc. 2024, 08:44
Localisation : https://snow-rider3d.io

Re: Ajax: Pb de réception

Message par borrowdelay » 11 déc. 2024, 08:45

yakafautcon a écrit :
17 nov. 2024, 17:50
Bonjour
Sur une page html j'ai un script Ajax.
En mode localhost la requête aboutit et la réponse est OK
En mode localhost en interrogeant le serveur distant la requête aboutit mais la réponse est vide. Si j'interroge le serveur via la requête la réponse est ok
Sur la page déployée sur Wordpress (snippet) même problème

requête->https://localhost/marche/include/progra ... do&ville=0
Une idée ? merci

Code : Tout sélectionner

<script>

<!-- pilotage Ajax -->

var include = \''.$urlajax.'\';
var maj = (\''.$maj.'\').split(\',\');

color = ["","red","blue","green","purple","orange","darkred","lightred","darkblue","darkgreen","cadetblue","darkpurple","lightblue","lightgreen","gray","black","lightgray"];

function piloteajax(t){

//liste des villes	
if(t == 1){	   
	ajaxFunction(include+"?rep=rando&ville=0",t);
	newwin = window.open(include+"?rep=rando&ville=0","width=700,height=700,top=100,left=100,location=false,status=false,toolbar=false,menubar=false");}

//liste des GPX et point de rdv
if(t > 1){
	ville = document.getElementById("ville").value;
	ajaxFunction(include+"?rep=rando&ville="+ville,t);}
}

<!-- Ajax fct a appeler -->
function ajaxFunction(urlpilote,t){
var ajaxRequest;
try {
     // Opera 8.0+, Firefox, Safari
    ajaxRequest = new XMLHttpRequest();
     }catch (e) {
    // Internet Explorer Browsers
    try {
        ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
        }catch (e) {
        try{
            ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
            }catch (e){
            // Something went wrong
            alert("Pas de réponse du serveur!");
            return false;
            }
        }
    }
// fonction qui recevra la réponse et mise à jour
ajaxRequest.onreadystatechange = function(){
    if(ajaxRequest.readyState == 4){
		donnee = ajaxRequest.responseText;
		alert(donnee);
		if(t==1){
			var ajaxDisplay = document.getElementById("ville");
			ajaxDisplay.innerHTML = donnee;
			if(maj.length>1){majville();}
			}
			[url=https://snow-rider3d.io/]snow rider[/url]
		if(t==2){
			donnee = donnee.split("|");
			var ajaxDisplay = document.getElementById("gpx_1");
			ajaxDisplay.innerHTML = donnee[0];
			var ajaxDisplay = document.getElementById("gpx_2");
			ajaxDisplay.innerHTML = donnee[0];
			var ajaxDisplay = document.getElementById("gpx_3");
			ajaxDisplay.innerHTML = donnee[0];
			var ajaxDisplay = document.getElementById("rdv");
			ajaxDisplay.value = \'lat=\'+donnee[1].split(\',\')[0]+\'&lng=\'+donnee[1].split(\',\')[1];
			if(maj.length>1){majgpx();}
		
			}
		if(t==3){
			donnee = donnee.split("|");
			var ajaxDisplay = document.getElementById("rdv");
			ajaxDisplay.value = \'lat=\'+donnee[1].split(\',\')[0]+\'&lng=\'+donnee[1].split(\',\')[1];
			}	
         }
    }
               
// récupération des valeurs envoyées en GET au serveur

	ajaxRequest.open("GET", urlpilote , true);
	ajaxRequest.send(null);

//fin -->	
}
Le problème semble lié à une configuration CORS ou de chemin incorrect entre votre localhost et le serveur distant. En mode localhost, les règles de sécurité CORS ne s'appliquent pas strictement, mais lorsqu'il interagit avec le serveur distant, cela pourrait entraîner une réponse vide. Vérifiez :

1. CORS : Autorisez les requêtes depuis votre origine dans la configuration serveur distant.
2. Chemin exact : Confirmez que les URL et paramètres sont identiques.
3. Erreur PHP : Activez les logs d'erreurs côté serveur pour identifier tout problème lors de la génération de la réponse.

Kix369
Messages : 1
Enregistré le : 15 déc. 2024, 16:07

Re: Ajax: Pb de réception

Message par Kix369 » 16 déc. 2024, 07:46

Une autre piste à explorer, surtout si vous travaillez avec des contenus dynamiques ou des médias générés automatiquement, serait de tester les réponses du serveur via un outil d’inspection réseau ou de visualisation pour repérer les comportements inattendus. Parfois, ce type de bug est lié à une gestion des fichiers ou des réponses mal configurées côté serveur, surtout si des outils d’automatisation ou des services d’édition avancés sont impliqués. Après, si vous manipulez souvent des fichiers vidéo ou des médias en lien avec vos projets, penser à simplifier certaines étapes grâce à des outils optimisés peut vraiment faire gagner du temps.
Testez ici notre outil montage vidéo ia

Ray Hensley
Messages : 2
Enregistré le : 19 déc. 2024, 08:19

Re: Ajax: Pb de réception

Message par Ray Hensley » 24 déc. 2024, 08:01

yakafautcon a écrit :
17 nov. 2024, 17:50
Bonjour
Sur une page html j'ai un script Ajax.
En mode localhost la requête aboutit et la réponse est OK
En mode localhost en interrogeant le serveur distant la requête aboutit mais la réponse est vide. Si j'interroge le serveur via la requête la réponse est ok
Sur la page déployée sur Wordpress (snippet) même problème

requête-> https://localhost/block blast game/marche/include/progra ... do&ville=0
Une idée ? merci

Code : Tout sélectionner

<script>

<!-- pilotage Ajax -->

var include = \''.$urlajax.'\';
var maj = (\''.$maj.'\').split(\',\');

color = ["","red","blue","green","purple","orange","darkred","lightred","darkblue","darkgreen","cadetblue","darkpurple","lightblue","lightgreen","gray","black","lightgray"];

function piloteajax(t){

//liste des villes	
if(t == 1){	   
	ajaxFunction(include+"?rep=rando&ville=0",t);
	newwin = window.open(include+"?rep=rando&ville=0","width=700,height=700,top=100,left=100,location=false,status=false,toolbar=false,menubar=false");}

//liste des GPX et point de rdv
if(t > 1){
	ville = document.getElementById("ville").value;
	ajaxFunction(include+"?rep=rando&ville="+ville,t);}
}

<!-- Ajax fct a appeler -->
function ajaxFunction(urlpilote,t){
var ajaxRequest;
try {
     // Opera 8.0+, Firefox, Safari
    ajaxRequest = new XMLHttpRequest();
     }catch (e) {
    // Internet Explorer Browsers
    try {
        ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
        }catch (e) {
        try{
            ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
            }catch (e){
            // Something went wrong
            alert("Pas de réponse du serveur!");
            return false;
            }
        }
    }
// fonction qui recevra la réponse et mise à jour
ajaxRequest.onreadystatechange = function(){
    if(ajaxRequest.readyState == 4){
		donnee = ajaxRequest.responseText;
		alert(donnee);
		if(t==1){
			var ajaxDisplay = document.getElementById("ville");
			ajaxDisplay.innerHTML = donnee;
			if(maj.length>1){majville();}
			}
		if(t==2){
			donnee = donnee.split("|");
			var ajaxDisplay = document.getElementById("gpx_1");
			ajaxDisplay.innerHTML = donnee[0];
			var ajaxDisplay = document.getElementById("gpx_2");
			ajaxDisplay.innerHTML = donnee[0];
			var ajaxDisplay = document.getElementById("gpx_3");
			ajaxDisplay.innerHTML = donnee[0];
			var ajaxDisplay = document.getElementById("rdv");
			ajaxDisplay.value = \'lat=\'+donnee[1].split(\',\')[0]+\'&lng=\'+donnee[1].split(\',\')[1];
			if(maj.length>1){majgpx();}
		
			}
		if(t==3){
			donnee = donnee.split("|");
			var ajaxDisplay = document.getElementById("rdv");
			ajaxDisplay.value = \'lat=\'+donnee[1].split(\',\')[0]+\'&lng=\'+donnee[1].split(\',\')[1];
			}	
         }
    }
               
// récupération des valeurs envoyées en GET au serveur

	ajaxRequest.open("GET", urlpilote , true);
	ajaxRequest.send(null);

//fin -->	
}
Le souci paraît être dû à une configuration CORS ou de chemin incorrecte entre votre environnement local et le serveur à distance. En mode local, les règles de sécurité CORS ne sont pas sévèrement respectées. Cependant, lorsqu'il s'agit d'une interaction avec le serveur à distance, cela pourrait donner lieu à une réponse vide.

Répondre