XMLHttpRequest IE vs others [Résolu]

nagaD.scar 4148 Messages postés samedi 8 septembre 2007Date d'inscription 13 décembre 2017 Dernière intervention - 27 nov. 2017 à 14:15 - Dernière réponse : nagaD.scar 4148 Messages postés samedi 8 septembre 2007Date d'inscription 13 décembre 2017 Dernière intervention
- 29 nov. 2017 à 10:50
Salut à tous,

Voilà j'ai deux soucis (outre le fait que je lutte avec le css pour ie mais peu importe) : le but est de communiquer en localhost en javascript avec un exe local sur le port 85, il faut juste envoyer un flux xml en POST, récupérer la valeur, la forwarder sur le serveur et on est bon.


Bref mon truc se fait en deux étapes : récupère la valeur en local puis set sur la session.

Voilà donc ce que je fais:


function getParams(callback){

	var theUrl = "http://127.0.0.1:85";
	var xmlHttp = new XMLHttpRequest();
	xmlHttp.open("POST", theUrl, true); // true for asynchronous 
	xmlHttp.setRequestHeader("Access-Control-Allow-Origin", "*");
	xmlHttp.setRequestHeader("Garb", "\r\nHost: 127.0.0.1");
	xmlHttp.setRequestHeader("ss", "\r\nReferer");
	
	var sXML = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?><JSCOXML version=\"1.0.0\"><CMD value=\"getinfo\"/></JSCOXML>";
	xmlHttp.onreadystatechange = function() { callback(xmlHttp); }
	xmlHttp.send(sXML);
}

getParams( function(result) {

	if (result.readyState == 4 && result.status === 200) {
		var arr = result.responseText.split("\r\n");
		if(arr.length >=1) {
			var hr = new XMLHttpRequest();
			var url = "procAjax.php";
			var vars = "function=setUserPop&popid="+arr[1];
			hr.open("POST", url, true);
			hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			hr.onreadystatechange = function() {
				if(hr.readyState == 4 && hr.status == 200) {			
					alert(hr.responseText);
				}
			}
			hr.send(vars);
		
		} else {
		  alert("Error while reading stew label station!");
		}
	} 
});




Plusieurs choses:
- Sous ie ca fonctionne plus ou moins : pour une raison qui m'échappe. parfois la fonction est lancé, parfois non ... (pas de message d'erreur, rien => en fait si je fais du débug ca marche à tous les coup, sans debug environ 1 fois sur 3) mais sur le principe ca passe ( si une idée je suis quand même preneur ^^)

- sous ff ou chrome là c'est mort, à tous les coup je me retrouve avec un net::ERR_EMPTY_RESPONSE à tous les coups et le body (l'app d'écoute écrit le body dans un log) n'est pas récupéré ou reconnu ...



Vous vous demanderez aussi pourquoi:
xmlHttp.setRequestHeader("Garb", "\r\nHost: 127.0.0.1");
xmlHttp.setRequestHeader("ss", "\r\nReferer");

C'est juste que je peux pas setter le host et le refer (securité js oblige) et comme le ******* d'exe de m***** est blindé de sécurité et test inutiles (le truc est quand même sur un réseau fermé et tout ce qu'il fait c'est peser des paquets mais bref), et vu qu'il n'interprete que les dernières occurrences des paramètres du header , j ai pas vraiment le choix.


bref => c'est le pied .... bon au pire je vais passer tout ca en php mais vu que chaque instance sur chaque poste connait un filtrage par ip et que sais je encore pour pouvoir récupérer UN P**** de poids (merci l'info ultra sensible -_-), j'aimerai quand même faire tout passer en local (surtout que c'est censé être ultra réactif).

Bref j'y crois pas trop, et je suis pas sur d'être super clair (en plus d'en avoir marre x]) , mais si jamais quelqu'un aurai quelques infos àme communiquer je prends tout !

merci à ceux qui auront déjà pris le temps de lire ;)


naga
Afficher la suite 

1 réponse

Répondre au sujet
nagaD.scar 4148 Messages postés samedi 8 septembre 2007Date d'inscription 13 décembre 2017 Dernière intervention - 29 nov. 2017 à 10:50
0
Utile
résolu => je fais en ajax ... je perds un peu de temps mais tant pis.

naga
Commenter la réponse de nagaD.scar

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.