Problèmes de fonctionnement du script ajax. L'utilisation de ce que la page html:Problème avec le fonctionnement d'AJAX
<html>
<head>
<script type="text/javascript" src="scripts\main.js"></script>
<link rel="stylesheet" type="text/css" href="css\mainStyle.css" />
</head>
<body onload="onloadHandler();">
<canvas id="canvas" style="background-color:#ddd">
Sorry, your browser does not support the canvas element.
</canvas>
</body>
</html>
Le script:
function onloadHandler()
{
canvasItem = document.getElementById('canvas');
canvasItem.addEventListener('mousedown', mousedownEventHandler, false);
canvasItem.addEventListener('mousemove', mousemoveEventHandler, false);
callService("http://www.xul.fr/somefile.xml");
// callService("http://allcodecorner.com/index.html");
// callService("http://stackoverflow.com");
// callService("http://www.w3schools.com/ajax/ajax_info.txt");
setTimeout("redraw()", 5);
}
function callService(serviceName)
{
var xmlhttp;
if(window.XMLHttpRequest)
{
xmlhttp = new XMLHttpRequest();
} else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if(xmlhttp.readyState == 0)
{
alert('not initialized');
} else if (xmlhttp.readyState == 1)
{
alert('connection established');
} else if (xmlhttp.readyState == 3)
{
alert('processing request');
} else if (xmlhttp.readyState == 4)
{
alert('ready!');
}
if(xmlhttp.readyState==4)
{
if(xmlhttp.status==200)
{
alert(xmlhttp.responseText);
} else {
alert('Failed: ' + xmlhttp.responseText + ", status: " + xmlhttp.status);
}
}
}
alert(serviceName);
xmlhttp.open("POST",serviceName,true);
xmlhttp.send(null);
}
Peu importe quelle adresse je mets, je reçois les messages
'Connexion établie'
'prêt'
'Echec:, statut: 0'.
J'ai essayé sur Firefox et Chrome, j'ai essayé de l'exécuter localement et hébergé, rien ne semble fonctionner. Je reçois toujours un readyState de 4 et le statut de 0.
Des idées? J'ai essayé de connecter plusieurs sites, la même chose à chaque fois.
Ont également essayé avec GET, en définissant quelques en-têtes, même résultat. Assez essayé tous les exemples que je pourrais trouver, sans la chance
Oh mec, j'étais _sure_ Je l'ai essayé avec un fichier local. Juste ré-essayé alors, a bien fonctionné. Merci :). Chuck votre commentaire comme une réponse afin que je puisse le marquer – Rob
fait! La solution de contournement habituelle est un proxy côté serveur qui récupère le contenu pour vous et le transmet à votre JS dans un contexte local. –
Je pense que vous frappez la protection de plusieurs domaines. Vous ne pouvez pas utiliser XHR pour parler à d'autres domaines – Raynos