XMLHttpRequest readyState toujours égal à 1
Bonjour à tous,
J'insère par javascript des vidéos dans un article, mais avant l'insertion j'aimerai vérifier l'existence de la ressource.
J'utilise pour cela : XMLHttpRequest
mais le readyState est toujours = 1 et non 4 alors que le fichier existe et sur le même domaine.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| function addSourceToVideo(element, src, type) {
var source = document.createElement('source');
source.src = src;
source.type = type;
var request = new XMLHttpRequest();
request.open('GET', src, true);
request.send(null);
alert('src' + src + "readystate " + request.readyState + " - "+ request.status);
if (request.readyState == 4 && request.status == 200) {
//element.appendChild(source);
}
}
var src_video = document.getElementById("videourl").value;
addSourceToVideo(video, src_video+'.ogv', 'video/ogg'); |
Solution:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| function addSourceToVideo(element, src, type) {
var source = document.createElement('source');
source.src = src;
source.type = type;
var req = new XMLHttpRequest();
req.open('GET', src, true);
req.onreadystatechange = function (aEvt) {
//dump(src + ' '+ req.responseText+ ' | req.readyState->'+ req.readyState + ' | req.status ->'+ req.status);
if (req.readyState == 4) {
if((req.status == 200)||(req.status == 206)){
element.appendChild(source);
presence_source = true;
} else {
alert("Erreur pendant le chargement de la page.\n");
}
}
};
req.send(null);
}
var src_video = document.getElementById("videourl").value;
addSourceToVideo(video, src_video+'.ogv', 'video/ogg');
addSourceToVideo(video, src_video+'.mp4', 'video/mp4');
addSourceToVideo(video, src_video+'.webm', 'video/webm'); |